记录一次报错Extra data

1 篇文章 0 订阅

将一个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结束。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值