.json添加了双引号

时间:2016-02-12 16:58:46

标签: python json

我试图编写Python代码,通过扩展对图像进行排序,并将它们归类为.json文件。打印字符串时,语法与标准{'key1' : 'value1'}匹配。但是,在打开.json文件时,我注意到它添加了双重引号,例如"{'key1' : 'value1'}" 我不确定导致这种情况发生的原因,这是我的代码:

for i in range(0,jpgCounter,1):  
    jpgBufferConfig =  '\''+str(i)+'\'' + ' : '  +'\''+ str(jpgList[i]) +'\'' 
    jpgConfig = jpgConfig + jpgBufferConfig+ " , " 
jpgConfig = jpgConfig[:-3]
jpgConfig = '{' + jpgConfig + '}' 

print jpgConfig 

with open ('config.json', 'w') as f:
    json.dump(jpgConfig,f) 

1 个答案:

答案 0 :(得分:0)

你这样做。您正在创建字符串,然后将该字符串编码为JSON; json.dump()接受Python对象,并将它们转换为JSON对象。该字符串包含单引号,逗号和大括号字符无关紧要,这些是编码的字符串值的一部分。你基本上对数据进行了双重编码。

创建一个Python字典,并将 编码为JSON:

jpgConfig = {str(i): str(item) for i, item in enumerate(jpgList)}
print jpgConfig   # prints the Python object produced as Python syntax.

with open ('config.json', 'w') as f:
    json.dump(jpgConfig, f) 

除了双重编码之外,您实际上生成了无效的JSON(使用单引号而不是双引号)。您会注意到生成的JSON将如下所示:

{"key1": "value1"}