如何使用 Python 解析 WIkidata JSON (.bz2) 文件?

paj*_*mas 3 python json wikidata bz2

我想使用维基数据查看实体和关系。我下载了 Wikidata JSON 转储(从此处下载了 .bz2 文件,大小约为 18 GB)。

但是,我无法打开该文件,它对于我的计算机来说太大了。

有没有办法在不提取完整 .bz2 文件的情况下查看该文件。特别是使用Python,我知道有一个PHP转储阅读器(此处),但我无法使用它。

小智 5

我想出了一个策略,允许使用 json 模块来访问信息而不打开文件:

import bz2
import json

with bz2.open(filename, "rt") as bzinput:
lines = []
for i, line in enumerate(bzinput):
    if i == 10: break
    tweets = json.loads(line)
    lines.append(tweets)
Run Code Online (Sandbox Code Playgroud)

这样,lines您就可以轻松操作字典列表,例如,通过删除不需要的键来减小字典的大小。

i==10还要注意(显然)可以任意更改条件以满足任何人(?)的需要。例如,您可以一次解析一些行,分析它们并将txt原始文件中您真正想要的行的索引写入文件中。只读取这些行就足够了(在循环中使用类似的条件ifor