从JSONfi迭代dict时发生Python键错误

2024-06-26 11:20:06 发布

您现在位置:Python中文网/ 问答频道 /正文

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

在JSON文件中,键'durationTimeFrom''durationTimeTo'并非在所有情况下都存在(我认为只有当eventType是{}时)。

在尝试读取该值之前,如何正确识别丢失的键,和/或如何为尚未具有该键的项插入伪键?

我已经搜索过Google/StackOverflow并尝试了if key in dict:和{},但没有成功。

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

Tags: 文件toineventjsonsourcedataindex
1条回答
网友
1楼 · 发布于 2024-06-26 11:20:06

dict.get。对我来说很好。你应该改变如下。在

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

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

相关问题 更多 >