在Python中解析dbpedia JSON

4 投票
2 回答
3031 浏览
提问于 2025-04-15 22:38

我正在努力理解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]

显然,你会想要做更多的错误检查,以防数据有问题,但这就是基本的思路。

撰写回答