【发布时间】:2019-11-09 03:09:34
【问题描述】:
我正在尝试使用 JSON 对象的数据构建一个列表。但是列表的顺序与 JSON 对象的顺序不匹配,并且几乎每次我运行代码时都会发生变化。
{
"project":{
"Projektnamen":{
"Server":{
"Server1":{
...
},
"Server2":{
...
},
"Server3":{
...
}
}
}
}
}
with open('json_data.json') as json_file:
# json CONFIG_JSON Konfigurationsdatei
CONFIG_JSON = json.load(json_file)
for key in CONFIG_JSON["project"]["Projektnamen"]["Server"]:
servernamen.append(key)
预期结果:servernamen = [Server1, Server2, Server3]
但是顺序总是会改变。 最后结果:servernamen = [Server3, Server1, Server2]
【问题讨论】:
-
可能在 Python 3.6 数组(或者更确切地说是字典)之前不必保持顺序。如果您需要订单,最好将其保留为列表。
-
字典不保证顺序。
-
@TheScientificMethod 该信息已过时。请参阅 stackoverflow.com/a/47881325/4014959 OTOH,JSON 规范不要求
{}对象保留顺序,因此通常不拥有期望它们保留顺序的数据流。