Pergunta

Estou tentando entender o esquema DBpedia JSON e não consigo descobrir uma maneira eficiente de extrair um nó específico:

Isso é o que Dbpedia me dá:

http://dbpedia.org/data/ceramic_art.json

Eu tenho tudo como um objeto JSON no Python, mas não entendo realmente como obter o resumo em inglês desses dados. Eu cheguei tão longe:

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"

Não tenho certeza de como proceder daqui. Como você pode ver, existem vários idiomas. Eu preciso obter o resumo em inglês.

Obrigado pela ajuda,

g

Foi útil?

Solução


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, você gostaria de fazer mais erro de verificação do que isso, caso os dados sejam ruins, mas essa é a ideia básica.

Outras dicas

É uma lista de ditos. Apenas itera através dos elementos da lista até encontrar aquele cujo valor para u'lang' é u'en'.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top