我试图将一些JSON Twitter数据加载到一个列表中,但是我得到了segmemtation fault (core dumped)
。在
虽然我很想升级我的内存,但现在根本不是一个选择。我想知道是否有某种方法可以遍历这个列表,而不是尝试将其全部加载到内存中?或者,对于这个问题,有一种不同的解决方案可以让我将这个JSON数据加载到一个列表中?在
In [1]: import json
In [2]: data = []
In [3]: for i in open('tweets.json'):
...: try:
...: data.append(json.loads(i))
...: except:
...: pass
...:
Segmentation fault (core dumped)
这些数据是使用Twitter流媒体API在大约10天内收集的,数据大小为2.13亿。在
机器规格:
我正在使用iPython(2.7.6版),并通过Linux终端窗口访问它。在
在几乎所有现代机器上,213MB的文件都非常小,很容易放入内存中。我已经在普通的现代机器上把更大的tweet数据集加载到内存中。但也许你(或其他人稍后阅读本文)并不是在现代机器上工作,或者它是一台内存容量特别小的现代机器。在
如果确实是数据的大小导致了分段错误,那么您可以尝试使用ijson模块来迭代JSON文档的块。在
以下是该项目页面中的一个示例:
相关问题 更多 >
编程相关推荐