Python 3的json.load()读取JSON文件顺序错误

3
当我使用json.load()加载JSON文件时,文件被读取的顺序错误,然后使用json.dump()保存的顺序也是错误的。
JSON文件:
{
"val0": 1386.9633674001711,
"val1": 0.0,
"val2": 0.021159999999999957,
"val3": 2.6119050462121836,
"val4": 0.0
}

Python如何读取:

{"val1","val4","val0","val2","val3"}

我该怎么应对这个问题?我现在正在使用RasPi,而且在Windows上,只需使用json.load()就可以正常工作,没有任何错误的顺序。

字典在 JSON 和 Python 中都是无序的。您可以使用 Python 的 OrderedDict 查找一些解决方案,但这只能解决部分问题,因为它只是一种非正式的 hack,不被 JSON 解析器通常支持。顺序变化是否重要? - tdelaney
是的,不幸的是它确实存在这个问题,我会尝试使用OrderedDict。但有点奇怪的是它在Windows上可以工作。 - nerdlab
1个回答

3
如果顺序是必须的,您可以将其直接加载到Python的OrderedDict中。
from collections import OrderedDict
import json
j = json.load(jsonFile, object_pairs_hook=OrderedDict)

谢谢,虽然不完全是我所期望的,但现在它也可以在RasPi上运行了。 - nerdlab

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接