我正在尝试将json对象写入要在其他程序中使用的txt文件。 代码生成的文件会出现意外行为(在我看来):
f = {'nt' : 50, 'nt_array': [10,20,30] }
json_obj = json.dumps(f)
f=open('out.txt','w')
f.write(json.dumps(json_obj)
f.close()
此代码生成包含以下内容的txt文件:
"{\"nt_array\": [10, 20, 30], \"nt\": 50}"
但我想要这个:
{"nt_array": [10, 20, 30], "nt": 50}
它添加了一些分隔符/和“。
答案 0 :(得分:2)
您编码为JSON 两次:
>>> import json
>>> obj = {'nt' : 50, 'nt_array': [10,20,30] }
>>> print json.dumps(obj)
{"nt_array": [10, 20, 30], "nt": 50}
>>> print json.dumps(json.dumps(obj))
"{\"nt_array\": [10, 20, 30], \"nt\": 50}"
只需使用json.dump()
function(最后没有s
)一次并直接写入文件:
obj = {'nt' : 50, 'nt_array': [10,20,30] }
with open('out.txt','w') as f:
json.dump(obj, f)
请注意使用with
自动关闭文件。
答案 1 :(得分:0)
您需要删除对json.dumps
的其中一个调用。第一个调用为您提供所需的值,第二个调用产生您不想要的转义格式。