python - 在 Python 中将嵌入对象 (JSON) 解析为有序字典
问题描述
我希望将一些 JSON 解析成字典,但需要保留字典特定部分的顺序。
我知道我可以将整个 JSON 文件解析为有序字典(例如,我可以让 JSON 加载到 OrderedDict 中吗?)但这并不是我想要的。
{
"foo": "bar",
"columns":
{
"col_1": [],
"col_2": []
}
}
在此示例中,我想将整个文件解析为字典,其中“列”部分为OrderedDict
. 是否有可能使用 JSON 解析工具获得这种粒度,同时保证始终保留顺序?谢谢!
解决方案
同时从评论中,我收集到一个完整的嵌套 OrderedDict 也很好,但这也可能是一个解决方案,如果您不介意使用有关列名称的一些知识:
import json
from collections import OrderedDict
def hook(partialjson):
if "col_1" in partialjson:
return OrderedDict(partialjson)
return dict(partialjson)
result = json.loads("YOUR JSON STRING", object_hook=hook)
希望这可以帮助!