将单引号字符串转换为双引号字符串
我想检查一个给定的字符串是用单引号还是双引号括起来的。如果是单引号的话,我想把它转换成双引号;如果已经是双引号了,那就保持不变。
7 个回答
6
在我的情况下,我需要把列表以json格式打印出来。这个方法对我有效:
f'''"inputs" : {str(vec).replace("'", '"')},\n'''
输出结果:
"inputs" : ["Input_Vector0_0_0", "Input_Vector0_0_1"],
之前没有替换的时候:
f'"inputs" : {vec},\n'
"inputs" : ['Input_Vector0_0_0', 'Input_Vector0_0_1'],
24
听起来你在处理JSON格式的数据。我建议你确保它总是用双引号包起来,像这样:
doubleQString = "{0}".format('my normal string')
with open('sampledict.json','w') as f:
json.dump(doubleQString ,f)
注意我使用的是 dump
,而不是 dumps
。
Sampledict.json
文件的内容会像这样:
"my normal string"
26
在Python中,"单引号"和"双引号"字符串没有区别:它们内部都被解析成字符串对象。
我的意思是:
a = "European Swallow"
b = 'African Swallow'
它们都是字符串对象。
不过,你可能想在字符串对象里面添加一个额外的引号,这样内容在打印或导出时就会显示为带引号的样子,对吧?
c = "'Unladen Swallow'"
如果你的字符串里面混用了不同的引号,比如:
a = """ Merry "Christmas"! Happy 'new year'! """
那么你可以使用"replace"方法把它们都转换成同一种类型的引号:
a = a.replace('"', "'")
如果你碰巧有嵌套的字符串,首先要把现有的引号替换成转义引号,然后再替换其他的引号:
a = """This is an example: "containing 'nested' strings" """
a = a.replace("'", "\\\'")
a = a.replace('"', "'")