Python 从 JSON 文件迭代字典时出现 KeyError

Python KeyError when iterating dict from JSON-file

我正在尝试读取一个 JSON 文件(并最终将内容保存到数据库),但是当 运行 下面的代码时,我得到了一个 KeyError。 See sample JSON供参考。

'durationTimeFrom''durationTimeTo' 键在 JSON 文件中并非在所有情况下都存在(我认为仅当 eventType80 时) .

如何在尝试读取值之前正确识别丢失的键,and/or如何为还没有键的项目插入虚拟键?

我已经搜索了 Google/Whosebug 并尝试了 if key in dict:dict.get(key) 但没有成功。

import json

source = "feed_traffic.json" # JSON file to process
data = json.loads(open(source).read()) # Process JSON

total = data["events"]["totalCount"]
index = 0

events = data["events"]["list"][index:total]

for event in events:

    eid = event["id"]
    type = event['eventType']
    header = event['headingText']
    lat = event['latitude']
    long = event['longitude']
    created = event['created']
    updated = event['updated']
    expires = event['expireTime']
    validFrom = event['durationTimeFrom']
    validTo = event['durationTimeTo']
    status = event['status']

    # Just to check all is well, out data in console
    print("Traffic Event", index, ":", eid, "-", type, "-", header, "(", long, ",", lat, ")")

    index = index+1

dict.get。这对我来说可以。你应该改变如下。

# before
validFrom = event['durationTimeFrom']
validTo = event['durationTimeTo']

# after
validFrom = event.get('durationTimeFrom')
validTo = event.get('durationTimeTo')