前言
最近在我的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中加入对应的处理逻辑: