json不能反序列化多个json对象

1.json报错

  • json中的load/loads不能反序列化多个json对象,只能反序列一个json对象

  • 只能被load一次

  • json.decoder.JSONDecodeError: Extra data: line 1 column 40 (char 39)

import json
goods=[{"id": 1, "title": "飞机", "price": 1000},
{"id": 3, "title": "大炮", "price": 1000},
{"id": 8, "title": "迫击炮", "price": 1000},
{"id": 9, "title": "手枪", "price": 1000}]

 with open("test.txt","w",encoding="utf-8") as f:
    data=json.dump(goods,f,ensure_ascii=False)

 with open("test.txt","r",encoding="utf-8") as f:
        data=json.load(f)
        print(data)
#不报错,因为goods是一个json对象



#方式二:添加很多歌json对象在文件中
with open("test.txt","w",encoding="utf-8") as f:
    for i in goods:
        json.dump(i,f,ensure_ascii=False)
        
with open("test.txt","r",encoding="utf-8") as f:
     data=json.load(f)
     print(data)
#报错 文件中包含很多json对象字符串,不能一下子反序列化所有json对象,
#会报错,应该是反序列化过程中字符串不匹配导致

#也报错  ==>json中的load/loads不能反序列化多个json对象,只能反序列一个json对象
    data=f.read()
    data=json.loads(data)
    print(data)

#json.decoder.JSONDecodeError: Extra data: line 1 column 40 (char 39)


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值