使用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.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但不值得。帮助!
答案 0 :(得分:3)
你试着重新制作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)
答案 1 :(得分:0)
build 中的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
}
}