Mam pęczek danych JSON za posty na Facebooku, jak ten poniżej:Sprawdź, czy klucz istnieje i iterację tablicę JSON przy użyciu Python
{"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"}
dane JSON jest pół-strukturalnego i nie wszystko jest takie same. Poniżej jest mój kod:
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":...}]}
Chcę kod aby wydrukować to_id jak 1543 else print 'null'
nie jestem pewien, jak to zrobić.
Dzięki!
Dlaczego to wyraźny 'in' kontroli i "przebić", jeśli ich brakuje? Wystarczy uzyskać do niego dostęp bez sprawdzania, a otrzymasz dokładnie to samo zachowanie (z wyjątkiem 'KeyError' zamiast' ValueError'). – abarnert