【发布时间】:2018-07-14 08:56:47
【问题描述】:
import pandas as pd
with open(r'data.json') as f:
df = pd.read_json(f, encoding='utf-8')
我收到“无法保留内存块”错误。 Json 有 300 mb 大小,为在 python 中运行程序保留内存是否有任何限制?我在 PC 上有 8 GB RAM,使用 Windows 10
loading of json file into df
Traceback (most recent call last):
File "C:\Program Files\JetBrains\PyCharm 2018.1.4\helpers\pydev\pydev_run_in_console.py", line 52, in run_file
pydev_imports.execfile(file, globals, locals) # execute the script
File "C:\Program Files\JetBrains\PyCharm 2018.1.4\helpers\pydev\_pydev_imps\_pydev_execfile.py", line 18, in execfile
exec(compile(contents+"\n", file, 'exec'), glob, loc)
File "C:/Users/Beorn/PycharmProjects/project_0/projekt/test.py", line 7, in <module>
df = pd.read_json(f, encoding='utf-8')
File "C:\Users\Beorn\AppData\Local\Programs\Python\Python36-32\lib\site-packages\pandas\io\json\json.py", line 422, in read_json
result = json_reader.read()
File "C:\Users\Beorn\AppData\Local\Programs\Python\Python36-32\lib\site-packages\pandas\io\json\json.py", line 529, in read
obj = self._get_object_parser(self.data)
File "C:\Users\Beorn\AppData\Local\Programs\Python\Python36-32\lib\site-packages\pandas\io\json\json.py", line 546, in _get_object_parser
obj = FrameParser(json, **kwargs).parse()
File "C:\Users\Beorn\AppData\Local\Programs\Python\Python36-32\lib\site-packages\pandas\io\json\json.py", line 638, in parse
self._parse_no_numpy()
File "C:\Users\Beorn\AppData\Local\Programs\Python\Python36-32\lib\site-packages\pandas\io\json\json.py", line 853, in _parse_no_numpy
loads(json, precise_float=self.precise_float), dtype=None)
ValueError: Could not reserve memory block
PyDev console: starting.
Python 3.6.6 (v3.6.6:4cf1f54eb7, Jun 27 2018, 02:47:15) [MSC v.1900 32 bit (Intel)] on win32
【问题讨论】:
-
我从未见过这个错误,请显示完整的回溯。
-
你安装的是32位版本的python还是64位的?
-
嗯,我的搜索似乎表明这里还有更多内容。你在使用 Apache 吗?
-
32 位,我相信我不使用 Apache
-
当 Pandas 读取 JSON 文件时,它会使用 Python 的
json模块将其加载到内存中(堆栈跟踪中的相关行是 github.com/pandas-dev/pandas/blob/v0.23.3/pandas/io/json/…,它会调用json.loads)。如果使用json.load()将数据加载到普通字典中会出现相同的错误,那么您可以排除 Pandas 的问题。关于加载大型 JSON 文件的问题(例如 stackoverflow.com/questions/10382253/…)有一些关于 SO 的问题 - 所以这是首先要尝试的事情。