我正在尝试使用Pywikibot从Wikidata获取某个实体的所有别名。
import pywikibot
site = pywikibot.Site("en", "wikipedia")
page = pywikibot.Page(site, "Barack Obama")
item = pywikibot.ItemPage.fromPage(page)
item_dict = item.get()
names = item_dict['aliases']['en']
print(names)
它将打印:“ [''巴拉克·侯赛因·奥巴马二世','巴拉克·奥巴马二世','巴拉克·侯赛因·奥巴马','奥巴马','巴拉克·奥巴马','巴里·奥巴马','奥巴马总统','巴拉克总统奥巴马”,“ BHO”,“巴拉克”]“
到目前为止,一切都很好。但是,如果输入从其中获得的别名之一,则不会得到任何输出。 意思是如果我将第三行替换为
page = pywikibot.Page(site, "Obama")
找不到别名。 “巴拉克·奥巴马”(https://www.wikidata.org/wiki/Q76)的Wikidata的标题为“巴拉克·奥巴马”。我需要从包含的任何可能别名中访问别名,而不仅仅是“主要”别名。
有人知道如何解决这个问题吗?