我有一本要发送给 API 的字典,不幸的是,API 要求字典按非常特定的顺序排列。我正在从文件加载字典。
现在 json.load(fh, object_pairs_hook=OrderedDict)
完全按照预期的方式对顶级键进行排序,但我需要字典以不同的方式排序。
具体顺序:
{
"kind": "string",
"apiVersion": "string",
"metadata": {...},
"spec": {
"subKey": "string"
}
}
如何使用从文件加载的字典指定顶级和次级键的字典顺序?
最佳答案
在 Python 中,OrderedDict
中的项目顺序与它们写入其中的顺序相同。
因此,如果您想在创建 OrderedDict
时控制项目的顺序,您可以按照您想要的顺序编写它们。对于现有的OrderedDict
,您可以按顺序读出、删除和写回每一项。
在你的例子中,如果你需要调整项目的顺序,你可以这样做:
orders = ("kind", "apiVersion", "metadata", "spec")
for key in orders:
v = object_pairs_hook[key]
del object_pairs_hook[key]
object_pairs_hook[key] = v
关于python - 在 Python 中具有特定顺序的 OrderedDict,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33398817/