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

¿Fue útil?

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'.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top