如何使用python创建有效的json文件?
使用python创建json文件,该文件将包含多个条目,如下所示:如何使用python创建有效的json文件?,python,json,Python,Json,使用python创建json文件,该文件将包含多个条目,如下所示: out='' with open('data.json', 'w') as outfile: i=0; for i in range(3): string = "test_"+str(i)+'"'+':{ "status": "false", "test_id": 123453},' out= out+string.replac
out=''
with open('data.json', 'w') as outfile:
i=0;
for i in range(3):
string = "test_"+str(i)+'"'+':{ "status": "false", "test_id": 123453},'
out= out+string.replace("\\","");
i=i+1;
json.dump("{"+out+"}", outfile)
获取输出的文件为:
"{test_0\":{ \"status\": \"false\", \"test_id\": 123453},test_1\":{ \"status\": \"false\", \"test_id\": 123453},test_2\":{ \"status\": \"false\", \"test_id\": 123453},}"
但理想的正确输出应为:
{
"test_0":
{
"status": "false",
"test_id": 123453
},
"test_1":
{
"status": "false",
"test_id": 123453
},
"test_2":
{
"status": "false",
"test_id": 123453
}
}
所以接下来的输出有“\”我如何删除它们。它总是出现在文件中,也尝试过使用strip,但不值得。救命 您是否尝试重新生成json.dump? 通常,json.dump会完成这项工作
import json
import sys
out = {}
i = 0
for i in range(3):
out["test_"+str(i)] = { "status": "false", "test_id": 123453 }
i = i + 1
json.dump(out, sys.stdout, indent = 4)
内置的json模块将pyhton数据结构转储到合适的json代码中
您为它提供了一个字符串,它将其转储为一个正确的字符串。它屏蔽了每个内部的“
,将其作为\”
放在您的文件中,这样当您读取文件和json.load()时,它就会重新创建您给它的确切python字符串
一句话:不要构建数据字符串,构建数据,让json
完成它的工作:
import json
d = {'test_0': {'status': 'false', 'test_id': 123453},
'test_1': {'status': 'false', 'test_id': 123453},
'test_2': {'status': 'false', 'test_id': 123453}}
with open('data.json', 'w') as outfile:
json.dump(d,outfile, indent=4) # use indent to pretty print
with open('data.json', 'r') as outfile:
print("")
print(outfile.read())
输出:
{
"test_0": {
"status": "false",
"test_id": 123453
},
"test_1": {
"status": "false",
"test_id": 123453
},
"test_2": {
"status": "false",
"test_id": 123453
}
}
Doku:如果您想要一个JSON对象而不是JSON字符串,那么为什么要将字符串传递给
JSON.dump
,而不是相应的数据python数据类型(adict
)?