我试图编写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)
答案 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"}