首页 > 解决方案 > 在 Python 中将嵌入对象 (JSON) 解析为有序字典

问题描述

我希望将一些 JSON 解析成字典,但需要保留字典特定部分的顺序。

我知道我可以将整个 JSON 文件解析为有序字典(例如,我可以让 JSON 加载到 OrderedDict 中吗?)但这并不是我想要的。

{
    "foo": "bar",
    "columns":
    {
        "col_1": [],
        "col_2": []
    }
}

在此示例中,我想将整个文件解析为字典,其中“列”部分为OrderedDict. 是否有可能使用 JSON 解析工具获得这种粒度,同时保证始终保留顺序?谢谢!

标签: pythonjsondictionaryordereddictionary

解决方案


同时从评论中,我收集到一个完整的嵌套 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)

希望这可以帮助!


推荐阅读