这是一个基本上从路由器上的源路径提取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,因此需要双引号而不是单引号。我错过了什么?
1条答案
按热度按时间zte4gxcn1#
'"foo"'
是Python的吗repr()
弦的表示法"foo"
. 单引号不在字符串中,因此无法删除它们。他们是一个问题,相反,你如何打印字符串。print(yourstring)
不会有这些引用。print(repr(yourstring))
威尔。然而,如果您要将数据传递给yaml库,那么其中不应该有任何文字引号。您的文字数据(与用于表示该数据的语法相反)应该
foo
,不是"foo"
或者'foo'
.