Analisi DBpedia JSON in Python
Domanda
Sto cercando di ottenere la mia testa intorno allo schema dbpedia JSON e non riesco a capire un modo efficiente di estrazione di un nodo specifico:
Questo è ciò che mi dà dbpedia:
http://dbpedia.org/data/Ceramic_art.json
Ho il tutto come un oggetto JSON in Python, ma non capisco come ottenere l'astratto inglese da questi dati. Ho ottenuto fino a questo punto:
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"
Non è sicuro come procedere da qui. Come si può vedere ci sono più lingue. Ho bisogno di ottenere l'abstract in inglese.
Grazie per il vostro aiuto,
g
Soluzione
print [abstract['value'] for abstract in json_data["http://dbpedia.org/resource/Ceramic_art"]["http://dbpedia.org/ontology/abstract"] if abstract['lang'] == 'en'][0]
Ovviamente, che ci si vuole fare di più controllo degli errori di questo, nel caso in cui i dati sono male, ma questo è l'idea di base.
Altri suggerimenti
E 'una lista di dicts. Basta scorrere l'elementi della lista, fino a trovare quello il cui valore è u'lang'
u'en'
.