Ich habe eine Reihe von JSON-Daten aus Facebook-Posts wie den folgenden:
{"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"}
Die JSON-Daten sind halbstrukturiert und nicht alle gleich. Unten ist mein Code:
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":...}]}
Ich möchte, dass der Code die to_id als 1543 druckt, sonst 'null'
Ich bin mir nicht sicher, wie ich das machen soll.
in
Überprüfungen durchgeführt undraise
ob sie fehlen? Greifen Sie einfach ohne Überprüfung darauf zu, und Sie erhalten genau das gleiche Verhalten (außer mit aKeyError
anstelle von aValueError
).