如何在VS Code中自动将本地CSV列值导入Wikidata查询
自动将CSV列值导入Wikidata查询的方法
给你几个实用的实现方式,都是在VS Code环境下能搞定的:
VS Code正则替换快速处理
- 把CSV里的目标VIAF列单独导出到一个纯文本文件,保证每行一个VIAF值
- 打开这个文本文件,用VS Code的查找替换功能(快捷键Ctrl+H),勾选「正则表达式」选项
- 查找框输入
^(.*)$,替换框输入"$1",点击全部替换,这样每个值都会加上双引号 - 把所有处理好的带引号的值复制,替换掉你原有查询里
VALUES ?VIAF {后面的单个值,多个值之间用空格或换行分隔就行
Python脚本自动生成完整查询
写个简单的脚本就能一键生成填充好所有值的查询语句,不用手动复制:import csv # 替换成你的CSV文件路径和目标列名 csv_file = "你的文件路径.csv" viaf_col_name = "VIAF" viaf_list = [] with open(csv_file, 'r', encoding='utf-8') as f: reader = csv.DictReader(f) for row in reader: # 给每个VIAF值加上双引号 viaf_list.append(f'"{row[viaf_col_name]}"') # 拼接成最终查询 base_query = """SELECT ?Author ?AuthorLabel ?VIAF ?birthLocation WHERE { VALUES ?VIAF {{ {values} }} ?Author wdt:P214 ?VIAF ; wdt:P19 ?birthLocation . SERVICE wikibase:label {{ bd:serviceParam wikibase:language "[AUTO_Language],de". }} }""" final_query = base_query.format(values=" ".join(viaf_list)) # 打印结果或者写入文件 print(final_query) with open("填充好的查询.sparql", 'w', encoding='utf-8') as f: f.write(final_query)运行脚本后,直接把生成的查询内容复制到VS Code里就能用
VS Code扩展辅助
可以找类似CSV to SPARQL VALUES的扩展安装,这类工具支持直接选中CSV里的目标列,一键生成符合SPARQL格式的VALUES块,直接插入到你的查询语句里就行;或者用SPARQL Notebook这类扩展,支持直接读取本地CSV并关联执行查询,更省心
内容的提问来源于stack exchange,提问作者MrLibre
相关产品推荐
相关产品推荐

