Aşağıdaki gibi Facebook gönderilerinden bir sürü JSON verisi var:
{"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 verileri yarı yapılandırılmıştır ve hepsi aynı değildir. Kodum aşağıdadır:
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":...}]}
Kodun to_id'yi 1543 olarak yazdırmasını istiyorum, aksi takdirde 'null' yazdırmasını istiyorum
Bunu nasıl yapacağımdan emin değilim.
in
kontroller yapıyor veraise
eksiklerse? Sadece kontrol etmeden erişin ve tam olarak aynı davranışı elde edersiniz (aKeyError
yerine a ile hariçValueError
).