我在 ndjson 文件中有一个大约 300.000 个 wikidata id 的列表(例如 Q1347065、Q731635 等)
{"Q1347065": ""}
{"Q731635": ""}
{"Q191789": ""} ... etc
我想要的是获取每个id的标签,并形成一个键值字典,例如
{"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 小时)。有没有比我一直在做的更快的实现这一目标的另一种方法?