获取维基数据属性的描述?

时间:2015-03-21 05:24:19

标签: wikidata wikidata-api pywikibot

我们如何使用pywikibot获取维基数据属性的人类可读属性描述(例如:P31)?

1 个答案:

答案 0 :(得分:1)

您可以使用action=wbgetentities作为属性,就像使用普通项目一样。

获取P31的所有可读描述:

https://www.wikidata.org/w/api.php?action=wbgetentities&ids=P31

并将结果限制为一种语言(英语):

https://www.wikidata.org/w/api.php?action=wbgetentities&ids=P31&languages=en

使用pywikibot只是为了这个任务看起来有点矫枉过正(pywikibot是一个用于构建大规模编辑等机器人的框架,主要是在维基百科上)。我不确定它是否可能。
还有其他更轻量级的框架,比如wikitools。使用wikitools,你会做这样的事情:

from wikitools import Wiki, APIRequest

pid = "P31"
endpoint = "http://commons.wikimedia.org/w/api.php"
username = "XXX"
password = "XXX"

site = Wiki(endpoint, username, password)
params = {'action':'wbgetentities', 'ids': pid}
request = APIRequest(site, params)
result = request.query()
print result["entities"][pid]["descriptions"]