读取Json文件报错:AttributeError/JSONDecodeError解决方法

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相同

解决方法:同上

  • 6
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值