AttributeError:'_io.TextIOWrapper'对象没有属性'load'

时间:2019-01-07 10:34:48

标签: json python-3.x

通过以下方式在python中读取json文件会给出错误。

json=open('file.json')

data = json.load(json)   OR

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

两者都给出AttributeError: '_io.TextIOWrapper' object has no attribute 'load'。是什么原因呢?

1 个答案:

答案 0 :(得分:3)

您不应称自己为json是可变的。这导致了错误。

执行以下操作:

import json

not_json = open('file.json')
data = json.load(not_json)

甚至更好:

with open('file.json') as input_file:
    data = json.load(input_file)

[编辑]

要声明以下内容,请注意以下内容:

import json

json = 2

单词json现在指向一个数字,并且您丢失了导入包的名称。 除非您在不同的范围内声明它(例如在函数内部),否则都是这样。

最佳实践:尝试避免使用内置名称,已知包等(例如:list = 2; list([1,2,3]))来命名vars / function / classs等