首页 > 解决方案 > 如何正确解析带有重复键的 JSON 文件?

问题描述

我有一个 JSON 字符串,如:

{
   "result":
            {
              "event": {"date": "12/12/13", "desc": "test1"},
              "event": {"date": "12/12/14", "desc": "test2"},
              "event": {"date": "12/12/15", "desc": "test3"}
            },
  "result":
            {
              "event": {"date": "12/12/13", "desc": "test5"},
              "event": {"date": "12/12/14", "desc": "test6"},
              "event": {"date": "12/12/15", "desc": "test7"}
            }
}

我想在所有结果中获取每个事件的所有日期和描述,该怎么做?

标签: pythonjsonparsing

解决方案


您可以使用ijson包:

import ijson
with open('data.json') as f:
    events = list(ijson.items(f, 'result.event'))
print(events)

输出:

[{'date': '12/12/13', 'desc': 'test1'}, {'date': '12/12/14', 'desc': 'test2'}, {'date': '12/12/15', 'desc': 'test3'}, {'date': '12/12/13', 'desc': 'test5'}, {'date': '12/12/14', 'desc': 'test6'}, {'date': '12/12/15', 'desc': 'test7'}]

不过,我认为在 JSON 文件中应该避免这种重复的键。


推荐阅读