将单引号字符串转换为双引号字符串

38 投票
7 回答
118796 浏览
提问于 2025-04-15 17:02

我想检查一个给定的字符串是用单引号还是双引号括起来的。如果是单引号的话,我想把它转换成双引号;如果已经是双引号了,那就保持不变。

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('"', "'")

撰写回答