Analizar DBpedia JSON en Python
Pregunta
Estoy tratando de conseguir mi cabeza alrededor del esquema DBpedia JSON y no puedo imaginar una forma eficiente de extracción de un nodo específico:
Esto es lo que me da DBpedia:
http://dbpedia.org/data/Ceramic_art.json
Tengo todo el asunto como un objeto JSON en Python, pero realmente no entiendo cómo obtener el Inglés resumen de estos datos. He llegado hasta aquí:
u = "http://dbpedia.org/data/Ceramic_art.json"
data = urlfetch.fetch(url=u)
json_data = json.loads(data.content)
for j in json_data["http://dbpedia.org/resource/Ceramic_art"]:
if(j == "http://dbpedia.org/ontology/abstract"):
print "it's here"
No está seguro de cómo proceder desde aquí. Como se puede ver hay varios idiomas. Necesito conseguir el Inglés abstracta.
Gracias por su ayuda,
g
Solución
print [abstract['value'] for abstract in json_data["http://dbpedia.org/resource/Ceramic_art"]["http://dbpedia.org/ontology/abstract"] if abstract['lang'] == 'en'][0]
Obviamente, usted querría hacer más comprobación de errores que, en caso de que los datos son malos, pero esa es la idea básica.
Otros consejos
Es una lista de dicts. Sólo iterar a través de los elementos de la lista hasta que encuentre el que tiene valor para u'lang'
es u'en'
.