Parsing Dbpedia JSON em Python
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
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'
.