Python - Json导出到txt会添加意外的字符/分隔符

时间:2014-02-13 21:19:57

标签: python json

我正在尝试将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}

它添加了一些分隔符/和“。

2 个答案:

答案 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的其中一个调用。第一个调用为您提供所需的值,第二个调用产生您不想要的转义格式。