아래 게시물과 같은 Facebook 게시물의 JSON 데이터가 많이 있습니다.
{"from": {"id": "8", "name": "Mary Pinter"}, "message": "How ARE you?", "comments": {"count": 0}, "updated_time": "2012-05-01", "created_time": "2012-05-01", "to": {"data": [{"id": "1543", "name": "Honey Pinter"}]}, "type": "status", "id": "id_7"}
JSON 데이터는 반 구조적이며 모두 동일하지 않습니다. 아래는 내 코드입니다.
import json
str = '{"from": {"id": "8", "name": "Mary Pinter"}, "message": "How ARE you?", "comments": {"count": 0}, "updated_time": "2012-05-01", "created_time": "2012-05-01", "to": {"data": [{"id": "1543", "name": "Honey Pinter"}]}, "type": "status", "id": "id_7"}'
data = json.loads(str)
post_id = data['id']
post_type = data['type']
print(post_id)
print(post_type)
created_time = data['created_time']
updated_time = data['updated_time']
print(created_time)
print(updated_time)
if data.get('application'):
app_id = data['application'].get('id', 0)
print(app_id)
else:
print('null')
#if data.get('to'):
#... This is the part I am not sure how to do
# Since it is in the form "to": {"data":[{"id":...}]}
코드가 to_id 를 1543 으로 인쇄하고 그렇지 않으면 'null' 을 인쇄하고 싶습니다.
이 작업을 수행하는 방법을 잘 모르겠습니다.
in
검사와raise
누락 된 검사 입니까? 확인하지 않고 액세스하면 정확히 동일한 동작을 얻을 수 있습니다 (KeyError
대신 에을 제외하고ValueError
).