python - 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:/ 硬盘是外部硬盘。
提前谢谢你的帮助 :)
解决方案
我没有任何关于在 python 中打开大文件的第一手知识,但是你的意思是将路径作为20200713.json/20200713.json
. 第一个实际上是具有 .json 扩展名的目录吗?我还建议尝试先加载一个较小的文件样本(打开可能很难,所以也许只是more
在终端中使用命令?)。
推荐阅读
- html - 显示 Angular 4 和另一个切片中选定的切换按钮
- c++ - 在 IF 语句中调用函数与不在 IF 语句中调用函数
- php - 扩展抽象测试类时找不到测试类
- c# - 哪个参考和对象是什么意思以及如何解决?
- excel - 应用公式,从选定单元格偏移三列
- android - 为什么显示空数据?
- selenium - 错误:gpu_process_transportfactory.cc(1`017) 丢失 UI 共享上下文与非无头 chrome
- c++ - C ++ FFmpeg如何在刷新后继续编码?
- sql - 如何获取具有当前行 ID 的子查询?
- css - 如果我有标签的 CSS 文件,如何更改 1 个特定标签字体的大小?