从wikidataapi获取python中的itemlabel

2024-05-20 01:07:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图用wikidataapi创建一个包含所有哈利波特角色名字的列表。我想从下面的链接把itemlabels(字符名)放到我的Python笔记本上。在

这是Wikidata查询服务查询,它可以按我的要求运行。在

import requests
import json
hpCharURL = "https://query.wikidata.org/sparql?query= SELECT DISTINCT 
?item ?itemLabel WHERE { {?item wdt:P31 ?sub1 . 
?sub1 (wdt:P279|wdt:P131)* wd:Q95074 . 
?item wdt:P1080 ?sub2 . 
?sub2 (wdt:P279|wdt:P131)* wd:Q5410773 } 
SERVICE wikibase:label { bd:serviceParam wikibase:language 'en' . }} 
&format = JSON"
r2 = requests.get(hpCharURL)
r2.json()

在运行了上面最后一行代码后,我一直收到这个错误:

^{pr2}$

结果仍然以XML而不是JSON返回,尽管我在查询的末尾指定了JSON。任何关于如何解决这个问题的想法都将不胜感激。在


Tags: importjsonitemqueryrequestswikibaser2wd
2条回答

是的,您仍然可以获得xml。在

要请求JSON响应,请在请求中添加一个头,如下所示:

headers = {"Accept" : "application/json"}
r2 = requests.get(hpCharURL, headers=headers)
r2.json()

有一个方便的包可以从wikipeidia获取数据。检查一下https://pypi.python.org/pypi/wikipedia

相关问题 更多 >