【发布时间】:2020-09-24 18:35:56
【问题描述】:
我想将字典转储到 json 文件中,然后加载它,然后我会使用它。
dic = {}
for n in range(1,10):
if n%2==0:
dic[n] = n**2
else:
dic[str(n)] = n**2
print(dic)
打印输出为:
{'1': 1, 2: 4, '3': 9, 4: 16, '5': 25, 6: 36, '7': 49, 8: 64, '9': 81}
这是我想要的结果
但是当我json.dump它和json.load它时,...
with open("myfile.json","w") as fp:
json.dump(dic,fp)
with open("myfile.json") as fq:
newdic=json.load(fq)
print(newdic)
输出是:
{'1': 1, '2': 4, '3': 9, '4': 16, '5': 25, '6': 36, '7': 49, '8': 64, '9': 81}
所有的键都变成了字符串。 在这种简单的情况下,它是可以避免的, 但是在复杂的情况下我该怎么办?
任何帮助表示赞赏。
【问题讨论】:
-
我不确定问题到底是什么,或者你想要得到什么输出。正如您所说,由于 JSON 仅允许字符串作为对象键,因此您在解析文档时将无法避免获取字符串。您是否正在寻找解决这个问题的方法? “复杂案件”是什么意思?您可以使用
pickle作为替代。 -
你为什么使用字典而不是列表,什么是“复杂情况”?
标签: python json python-3.x dictionary io