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

Python-Json导出到txt会添加意外的字符/分隔符,python,json,Python,Json,我正在尝试将json对象写入txt文件,以便在其他程序中使用。 代码生成的文件呈现意外行为(我认为): 此代码生成包含以下内容的txt文件: "{\"nt_array\": [10, 20, 30], \"nt\": 50}" 但我想要这个: {"nt_array": [10, 20, 30], "nt": 50} 它添加了一些分隔符和“您两次编码到JSON中: >>> import json >>> obj = {'nt' : 50, 'nt_array

我正在尝试将json对象写入txt文件,以便在其他程序中使用。 代码生成的文件呈现意外行为(我认为):

此代码生成包含以下内容的txt文件:

"{\"nt_array\": [10, 20, 30], \"nt\": 50}"
但我想要这个:

{"nt_array": [10, 20, 30], "nt": 50}

它添加了一些分隔符和“

您两次编码到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}"
只需使用(结尾处的no
s
)一次,然后直接写入文件:

obj = {'nt' : 50, 'nt_array': [10,20,30] }
with open('out.txt','w') as f:
    json.dump(obj, f)

请注意,使用
with
也可以自动关闭文件。

您需要删除对
json.dumps的一个调用。
第一个调用为您提供所需的值,第二个调用生成您不需要的转义格式。

您对
json.dumps
进行了冗余调用……这意味着您是JSONif通过jsonification对象生成字符串。你说得对!非常感谢!作为旁注,你使用
json.dumps
构建字符串只是为了写入文件,而不是使用
json.dump
?@abarnert这是我代码的简化版本,更具可读性
obj = {'nt' : 50, 'nt_array': [10,20,30] }
with open('out.txt','w') as f:
    json.dump(obj, f)