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

È stato utile?

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top