Разбор dbpedia JSON в Python - PullRequest
       19

Разбор dbpedia JSON в Python

4 голосов
/ 13 мая 2010

Я пытаюсь разобраться в схеме JSON dbpedia и не могу найти эффективный способ извлечения определенного узла:

Вот что дает мне dbpedia:

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

У меня есть все это как объект JSON в Python, но я не совсем понимаю, как получить аннотация на английском из этих данных Я получил это далеко:

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"

Не уверен, что делать дальше. Как вы можете видеть, есть несколько языков. Мне нужно получить аннотацию на английском языке.

Спасибо за вашу помощь,

г

Ответы [ 2 ]

3 голосов
/ 13 мая 2010

print [abstract['value'] for abstract in json_data["http://dbpedia.org/resource/Ceramic_art"]["http://dbpedia.org/ontology/abstract"] if abstract['lang'] == 'en'][0]

Очевидно, вы захотите сделать больше проверки ошибок, чем в случае, если данные неверны, но это основная идея.

3 голосов
/ 13 мая 2010

Это список диктов. Просто перебирайте элементы списка, пока не найдете тот, чье значение для u'lang' равно u'en'.

...