python - 无法保留内存块,在 python 中导入 json 错误

标签 python json import

import pandas as pd
with open(r'data.json') as f:
   df = pd.read_json(f, encoding='utf-8')

我收到“无法保留内存块”错误。 JSON 文件的大小为 300MB。在 Python 中为正在运行的程序保留内存是否有任何限制?我在 PC 上有 8GB 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

最佳答案

因此,在阅读了大量帖子和解决方案之后,我决定通过删除无用数据来减小文件大小。也许你会发现这很有用。顺便说一下,我在某处读到你需要的内存至少比你的 JSON 文件多 25 倍,所以在我的例子中,我需要超过 8GB。

with open('data.json', 'r') as data_file:
    data = json.load(data_file)

print(data.keys())
del data['author']

with open('datav2.json', 'w') as data_file:
    data = json.dump(data, data_file)

关于python - 无法保留内存块,在 python 中导入 json 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51336897/

相关文章:

python - 无法连接 'str' 和 'float' 对象?

python - Repl.it SMTPLIB OSError : [Errno 99] Cannot assign requested address

python - 从python写入一个json文件

jquery ui 自动完成 : remote source problem

javascript - 为什么 visual studio 代码会添加破坏我的 nodejs 程序的导入语句?

python - 如何在 Python 的一行用法中合并 f 字符串和 b 字符串

用于 Traceroute 的 Python 脚本和打印文件中的输出显示错误(OSError : [Errno 2] No such file or directory) in Linux Mint

Python MySQL插入错误必须是str,而不是AttributeError

string - 如何在ocaml中导入和使用新模块?

python - 如何将 os 变量导入 PYTHON 并更新它?