首页 > 解决方案 > Python OSError:[Errno 9] 打开大 json 文件后文件描述符错误

问题描述

我只是尝试在 Python 中逐行读取一个大的 json 文件(维基百科 json 转储)并得到错误:

Traceback (most recent call last):
  File "C:/.../test_json_wiki_file.py", line 19, in <module>
    test_fct()
  File "C:/.../test_json_wiki_file.py", line 12, in test_fct
    for line in f:
OSError: [Errno 9] Bad file descriptor

这是我的代码:

import json

def test_fct():
    data = []
    i = 0
    with open('E:/.../20200713.json/20200713.json') as f:
        for line in f:
            data.append(json.loads(line))
            i = i + 1

        if i > 1:
            input_file.close()
            return data

test_data = test_fct()

文件大小约为 700GB,文件的描述 ( https://www.wikidata.org/wiki/Wikidata:Database_download ) 表明它可以逐行读取。我不知道这是否重要,但 E:/ 硬盘是外部硬盘。

提前谢谢你的帮助 :)

标签: pythonjsonmediawikidumpwikipedia-api

解决方案


我没有任何关于在 python 中打开大文件的第一手知识,但是你的意思是将路径作为20200713.json/20200713.json. 第一个实际上是具有 .json 扩展名的目录吗?我还建议尝试先加载一个较小的文件样本(打开可能很难,所以也许只是more在终端中使用命令?)。


推荐阅读