我想阅读并将字典保存到文件中。问题是如果字典很大,str(dict)
会返回一行不是人类可读的行,如下所示:
{"category1": {"one": ["hello", [0, 1, 2, 3]], "two": ["world", [3, 2, 1, 0]]}, "category2": {"one": ["lol", [0, 1, 2, 3]], "two": ["1234", [3, 2, 1, 0]]}}
我的代码读取文件,将字典保存到变量us eval(string)
,进行更改,将字典转换为字符串并将其保存回同一文件。
文件开头包含此字符串:
{
"category1": {
"one": ["hello", [0, 1, 2, 3]],
"two": ["world", [3, 2, 1, 0]]
},
"category2": {
"one": ["lol", [0, 1, 2, 3]],
"two": ["1234", [3, 2, 1, 0]]
}
}
有没有办法以字母形式从字典中创建字符串?
答案 0 :(得分:1)
这是你想要的吗?
import json
d = {"category1": {"one": ["hello", [0, 1, 2, 3]], "two": ["world", [3, 2, 1, 0]]}, "category2": {"one": ["lol", [0, 1, 2, 3]], "two": ["1234", [3, 2, 1, 0]]}}
with open('output.json', 'w') as f:
json.dump(d, f, indent=2)
答案 1 :(得分:1)
所以有两件事。我不会使用eval()来加载json字符串。 Eval可能不稳定且使用起来很危险。我会这样做:
import json
jsonvar = json.loads(jsonstring)
然后将它设计好并将其转换回字符串以写入文件我会这样做:
import json
jsonvar = json.dumps(jsonvar, indent=4)
如果您在尝试导入json时遇到错误,请使用pip install json