首页 > 解决方案 > 读取JSON文件时,如何防止输出值交错?

问题描述

从 Python 脚本读取 JSON 文件时遇到问题。这是 JSON 文件:

{
    "a": 1,
    "b": 2,
    "c": 3, 
    "d": 4, 
    "e": 5, 
    "f": 6, 
    "g": 7, 
    "h": 8, 
    "i": 9
}

这是我从当前路径打开 JSON 文件并读取与其中的字母关联的每个值的 Python 文件:

with open(os.getcwd() + '/letters.json') as lettersListJSON:
    lettersList = json.load(lettersListJSON)
    for char in lettersList
        print lettersList[char]

我奇怪地得到这个输出:

1
3
2
5
4
7
6
9
8

为什么这些值是交错的,我怎样才能防止这种情况发生?我应该用互斥锁锁定变量的访问吗?

标签: pythonjson

解决方案


letterList实际上是 aletterDict所以它没有被订购 。

OrderedDict如果您真的希望它是有序的,您可以将 JSON 加载到:

from  collections import OrderedDict

letters = json.load(letterslistJSON, object_pairs_hook=OrderedDict)   

(显然我省略了打开文件等)


推荐阅读