我想看看使用维基数据的实体和关系。我下载了维基数据JSON转储(from here .bz2文件,大小约为18 GB)。
但是,我无法打开文件,它对我的电脑来说太大了。
有没有办法在不提取完整的.bz2的情况下查看文件 文件。特别是使用 Python ,我知道有一个PHP转储 读者(here),但我无法使用它。
答案 0 :(得分:2)
您可以使用BZ2File界面来操作压缩文件。但是你不能使用json模块来访问它的信息,它会占用太多空间。您必须索引文件,这意味着您必须逐行读取文件并在Dictionary(哈希表)中保存有趣对象的位置和长度,然后您可以提取给定对象并使用json模块加载它。
答案 1 :(得分:0)
我想出了一种策略,该策略允许使用json模块访问信息而无需打开文件:
.png
通过这种方式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)
将成为您可以轻松操作的字典列表,例如,通过删除不需要的键来减小字典的大小。
还请注意,(显然)条件lines
可以任意更改以适合任何需要的人。例如,您可以一次解析某些行,对其进行分析,然后在i==10
文件中写入原始文件中您真正想要的行的索引。仅读取那些行就足够了(使用txt
循环中i
中的类似条件)。