我想尝试将一系列项目上传到 test.wikidata,创建项目,然后添加初始声明 P571。csv 文件有时有日期值,有时没有。当没有给出日期值时,我想写出一个占位符“某个值”。
想象一个像这样的数据框:
df = {'Object': [1, 2,3], 'Date': [250,,300]}
但是,我不确定使用 Pywikibot 如何使用 pywikibot 遍历 csv 文件以为每一行创建一个项目并添加一个语句。这是我写的代码:
import pywikibot
import pandas as pd
site = pywikibot.Site("test", "wikidata")
repo = site.data_repository()
df = pd.read_csv('experiment.csv')
item = pywikibot.ItemPage(repo)
for item in df:
date = df['date']
prop_date = pywikibot.Claim(repo, u'P571')
if date=='':
prop_date.setSnakType('somevalue')
else:
target = pywikibot.WbTime(year=date)
prop_date.setTarget(target)
item.addClaim(prop_date)
当我通过 PAWS 运行它时,我收到以下消息:KeyError: 'date'
但我认为这里真正的问题是我不确定如何让 Pywikibot 遍历数据框的每一行并为每个新的日期值创建一个新的声明。对于好的示例和文档,我会重视任何反馈或建议。非常感谢!