Pyhon爬虫抓取Json解析错误

在Python爬虫中遇到json.loads()解析错误,由于原始数据包含转义的 " 和 '。作者通过替换算法解决该问题,将 " 替换为 ",并在遇到特殊Json(含' '和' ')时,选择在Python程序结束时用Java的FastJson解析。文章提供了封装的json.loads方法和双指针算法思想。
摘要由CSDN通过智能技术生成

前言

最近在我的Python爬虫中总是会遇到json.loads()方法报错,把抓取到的原文摘出来一看,里面带有转义的 " 和 ',也就是 \"和\'。

一开始遇到这个问题就疯狂上网搜索,结果找不到能解决我问题的答案,所以就想着按照Json解析的算法做一个自己的Json解析算法。不过,这似乎十分麻烦,懒惰的我于是就做了个替换算法。针对 " 做定位,并且将 Json内的 " 替换成 \", 这样后面进行Json解析的时候就不会报错了.

4月12日更新:

遇到了一个比较特殊的Json,里面有换行符和制表符('\n'和'\t'),在python中用自带的json.loads()总是会报错,我自己写的方法也不好搞。不过因为业务特殊,这个Json不一定要在爬虫的时候就解析,而且在Java中用FastJson解析完全没有问题.(阿里爸爸牛逼),所以就干脆在python程序结束的时候调用一下Java程序就好啦.

什么,怎么调用?怎么运行jar包就怎么调呗,毕竟懒得引入python调用Java的框架了.TNT

import os
os.system("java -jar test.jar")
# 如果遇到java程序乱码,就再加上运行时的编码设置就好啦
# os.system("java -Dfile.encoding=utf-8 -jar test.jar")

代码

封装json.loads方法,进行try及在except中加入对应的处理逻辑:


                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值