将嵌入式对象(JSON)解析为Python中的有序字典

时间:2019-06-06 15:28:25

标签: python json dictionary ordereddictionary

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

我知道我可以将整个JSON文件解析为有序字典(例如Can I get JSON to load into an OrderedDict?),但这并不是我想要的。

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

在此示例中,我想将整个文件解析为一个字典,其中“列”部分为OrderedDict。是否可以使用JSON解析工具将其细化,同时确保始终保留顺序?谢谢!

1 个答案:

答案 0 :(得分:0)

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

希望这会有所帮助!