JSON 파일을 읽고 (결국 내용을 데이터베이스에 저장하려고합니다.) 아래 코드를 실행하면 KeyError가 발생합니다. 참조 용으로 See sample JSON.JSON 파일에서 dict 반복 할 때 Python KeyError
키 'durationTimeFrom'
및 'durationTimeTo'
는 JSON 파일에 모든 경우에 존재하지 않는 (eventType
이 80
경우에만, 나는 생각한다).
값을 읽으 려하기 전에 누락 된 키를 올바르게 식별하는 방법 및/또는 키가없는 항목에 대해 더미 키를 삽입하는 방법은 무엇입니까?
나는 이미 Google/StackOverflow를 검색하여 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
오류 및 예외 처리를 구현해 보셨습니까? https://docs.python.org/2/tutorial/errors.html – glls
키가 존재하지 않으면 event.get ('id')는 None을 반환합니다. – Richy
'help (dict.get)'는'D.get (k [, d]) -> D [k] D가 k라면, 그렇지 않으면 d. d 기본값은 None입니다 .' 자신의 기본값을 제공 할 수 있습니다. 기본 id가 -1이라고 가정하면,'eid = event.get ("id", -1)'이됩니다. – tdelaney