ฉันมีข้อมูล JSON จำนวนมากจากโพสต์ Facebook เช่นเดียวกับด้านล่าง:
{"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 else พิมพ์ 'null'
ฉันไม่แน่ใจว่าจะทำอย่างไร
in
ตรวจสอบอย่างชัดเจนและraise
หากขาดหายไป เพียงแค่เข้าถึงโดยไม่ต้องตรวจสอบและคุณจะได้รับพฤติกรรมเดียวกันทุกประการ(ยกเว้นด้วย aKeyError
แทนที่จะเป็น aValueError
)