Wikidata - 获取大量 ID 的标签

问题描述

我在 ndjson 文件中有大约 300.000 个维基数据 ID(例如 Q1347065、Q731635 等)的列表

{"Q1347065": ""}
{"Q731635": ""}
{"Q191789": ""} ... etc

我想要的是获取每个id的标签,形成一个key值的字典,比如

{"Q1347065":"epiglottitis","Q731635":"Mount Vernon",...}

在 id 列表变得如此庞大之前,我使用的是 Wikidata python 库 (https://pypi.org/project/Wikidata/)

from wikidata.client import Client
import ndjson

client = Client()
with open("claims.ndjson") as f,open('claims_to_strings.json','w') as out:
    claims = ndjson.load(f)

    l = {} 
    for d in claims: 
        l.update(d)

    for key in l:
        v = client.get(key)
        l[key] = str(v.label)

    json.dumps(l,out)

但是它太慢了(1000 个 ID 大约需要 15 个小时)。是否有另一种方法可以比我一直在做的更快地实现这一目标?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)