通过以下方式在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'
。是什么原因呢?
答案 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等