记录一次报错Extra data

本文分享了将TXT文件转换为JSON格式的实战经验,详细介绍了如何处理字符串中多余的符号和空格,确保数据能够被正确解析。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

将一个txt文件转换为json格式,txt文档读取的每一行为一个str格式的字段,类似于json格式。以为只要使用 import json之后,json.loads()即可转化为json格式。

    def data_clean(cls, file_path):
        with open(file_path, 'r') as f:
            str = f.readline()
            print(str)
            json_data = json.loads(str)
            print(json_data)

报错:

json.decoder.JSONDecodeError: Expecting ':' delimiter: line 1 column 4 (char 3)

分析str字符串后发现,字符串首尾可能有空格,使用strip(),之后因为字符串{}最外层有" “,即”{}",str使用的是"“北京”",而json为"北京"或者’北京’。json想要解析,str就必须为json形式的字符串。

比如:

[{"城市":"北京","面积":16800,"人口":1600},{"城市":"上海","面积":6400,"人口":1800}]

txt文档的每一行类似:

   "[{""城市"":""北京"",""面积"":16800,""人口"":1600},{""城市"":""上海"",""面积"":6400,""人口"":1800}]"   

修改程序如下:

    def data_clean(cls, file_path):
        with open(file_path, 'r') as f:
            str = f.readline().strip().strip('\"').replace("\"\"", "\"")
            print(str)
            json_data = json.loads(str)
            print(json_data)

debug结束。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值