1. AttributeError:'str' object has no attribute 'read'
原因1:json.load()和json.loads()用错了,前者应该用来读取json文件,后者用来解析包含json格式数据的字符串并转为字典类型。
解决方法:使用适合的函数。
原因2:json.load()函数只能操作如下两种json文件
(1)头尾都有大花括号,是一个大字典包着里面的小字典或其他
(2)头尾是方括号,是一个小字典组成的列表
如果遇到那种每一行是一个字典,首尾并未包在字典或列表中的json文件,直接用load函数就可能报这个错误。
解决方法:先open这个文件,然后逐行读取,在for循环里逐行调用loads函数。
如:
file = open("chinese_simplified_train.json", 'r', encoding='utf-8')
contents = []
for line in file.readlines():
dic = json.loads(line)
contents.append(dic)
2. JSONDecodeError:Extra data:line 2 column 1
原因:和第一个报错的原因2相同
解决方法:同上