在Python中解析dbpedia JSON
我正在努力理解dbpedia的JSON结构,但不知道怎么有效地提取一个特定的节点:
这是dbpedia给我的数据:
http://dbpedia.org/data/Ceramic_art.json
我在Python中已经把整个数据当作一个JSON对象,但不太明白怎么从这些数据中获取英文摘要。我已经做到这一步:
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"
接下来该怎么做我也不太确定。正如你所看到的,这里有多种语言。我需要获取英文的摘要。
谢谢你的帮助,
g
2 个回答
3
这是一组字典的列表。你只需要一个一个地查看列表里的元素,直到找到那个u'lang'
的值是u'en'
的元素。
3
print [abstract['value'] for abstract in json_data["http://dbpedia.org/resource/Ceramic_art"]["http://dbpedia.org/ontology/abstract"] if abstract['lang'] == 'en'][0]
显然,你会想要做更多的错误检查,以防数据有问题,但这就是基本的思路。