i cant get strip()成功地从ip地址中删除单引号

kq0g1dla  于 2021-07-13  发布在  Java
关注(0)|答案(1)|浏览(253)

这是一个基本上从路由器上的源路径提取ip地址的脚本。我可以成功地提取ip地址和子网,但由于某些原因,我不知道如何删除单引号并保留双引号。

source_path = []
if item["sourcePath"] == "":
    source_ranges = None
else:
    for source in item["sourcePath"].split(","):
        thing = '"%s"'.strip(chr(39)) % "".join(("",source,""))
        source_path.append(thing)

我试图在返回值时删除该值的单引号,但最终得到的结果是:“'10.0.0.1/25””
我在这里尝试过以各种形式使用strip()来实现这个值:“10.0.0.1/25”,没有单引号。我还尝试添加了以下3种方法:

thing = '"%s"' % "".join(("",source,"")).strip(chr(39))
thing = '"%s"' % "".join(("",source,"")).strip('')
thing = '"%s"'.replace("'", "") % "".join(("",source,""))

但是,没有什么变化,我仍然得到双引号。这个脚本只是从json文件中提取ip地址,然后将它们转换成yaml,因此需要双引号而不是单引号。我错过了什么?

zte4gxcn

zte4gxcn1#

'"foo"' 是Python的吗 repr() 弦的表示法 "foo" . 单引号不在字符串中,因此无法删除它们。他们是一个问题,相反,你如何打印字符串。 print(yourstring) 不会有这些引用。 print(repr(yourstring)) 威尔。
然而,如果您要将数据传递给yaml库,那么其中不应该有任何文字引号。您的文字数据(与用于表示该数据的语法相反)应该 foo ,不是 "foo" 或者 'foo' .

相关问题