我们如何使用pywikibot获取维基数据属性的人类可读属性描述(例如:P31)?
答案 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"]