使用Python读取json文件中很长的一行时出现内存错误
我有一个1GB的json文件,其中有很长的行,当我尝试从该文件加载行时,我从PyCharm控制台得到以下错误:使用Python读取json文件中很长的一行时出现内存错误,python,json,Python,Json,我有一个1GB的json文件,其中有很长的行,当我尝试从该文件加载行时,我从PyCharm控制台得到以下错误: Traceback (most recent call last): File "C:\Program Files\JetBrains\PyCharm 2017.3.3\helpers\pydev\pydev_run_in_console.py", line 53, in run_file pydev_imports.execfile(file, globals, loca
Traceback (most recent call last):
File "C:\Program Files\JetBrains\PyCharm 2017.3.3\helpers\pydev\pydev_run_in_console.py", line 53, in run_file
pydev_imports.execfile(file, globals, locals) # execute the script
File "......... .py", line 26, in <module>
for line in f:
MemoryError
PyDev console: starting.
Python 2.7.14 (v2.7.14:84471935ed, Sep 16 2017, 20:19:30) [MSC v.1500 32 bit (Intel)] on win32
错误消息中的第26行引用了
tweetData=json.load(行)
第53行是指
json.dump(topicMap,output,sort\u keys=True)
奇怪的是,我从GitHub派生了这段代码,因此我认为它应该可以工作。看起来您使用的是32位版本的Python:
Python 2.7.14 (...) [MSC v.1500 32 bit (Intel)] on win32
在Windows上,每个进程的内存限制为2GB,因此即使内存充足,也会出现内存错误。切换到64位版本的Python应该可以解决您的问题,以防您不想更改脚本。您是否也提供了数据?你的数据太大了-你到底为什么需要一个文件中包含1GB json的推文?可能是@PatrickArtner的重复:读取如此大的json对象可能有很多很好的理由,但在推文的情况下,我当然更喜欢每行放一条tweet并单独阅读,而不是序列化和取消序列化一个伟大的鸣叫列表。是的,我也提供了完全相同的数据。我更喜欢有一个json文件来与我分叉的原始项目保持一致,因为我需要从它开始作为我工作的基础谢谢,我会尝试!我可以在安装32位版本的同时安装它,还是最好先卸载它?请查看相关信息,尽管如果安装了64位版本,我不认为有任何理由保留32位Python。
Python 2.7.14 (...) [MSC v.1500 32 bit (Intel)] on win32