我想对计算机上CSV文件列中列出的许多值进行维基数据查询。如何将CSV文件中的值自动加载到维基数据查询中,而无需手动复制它们?
到目前为止,我已经在Visual Studio代码中使用了Wikidata查询。
这是我为一个人制作的query:
SELECT ?Author ?AuthorLabel ?VIAF ?birthLocation
WHERE {
VALUES ?VIAF {"2467372"}
?Author wdt:P214 ?VIAF ;
wdt:P19 ?birthLocation .
SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_Language],de". }
}
我想从CSV文件的列中自动加载许多值到上面查询的花括号中。
2条答案
按热度按时间fruv7luv1#
首先,我不得不指出,如果你还不知道一种编程语言,OpenRefine可以为你做这几个点击。
话虽如此,下面是一个基本的Python程序,它可以完成您的实际要求-阅读一组VIAF id并将它们添加到查询中:
它需要一个CSV文件,其中包含一个名为
viaf
的列,并将忽略所有其他列。我稍微调整了查询:
这就假设您有一个足够小的标识符集合,可以使用单个查询,但您可以将其扩展为:
u4vypkhs2#
因此,假设您有一个包含以下内容的文件
my_file.csv
:首先,导入一个python库来阅读文件(比如
fileinput
)。然后声明要用于查询的模式,使用
%s
作为标识符的占位符。现在,构建标识符列表,如下所示:
最后,使用空格字符作为分隔符连接列表,并将此字符串传递给查询模式:
这是最终代码:
执行它,您将获得: