在反序列化数据的时候报错raise JSONDecodeError("Expecting value", s, err.value) from None json.decode

今天在爬取某网站数据内容适合,通过正则匹配拿到了需要的内容字符串,但是在反序列化的时候竟然报错,大概意思知道他不是json的期望值,那么我就会像是不是数据内有一些内容是由于编码的问题导致的呢?因为之前爬一些内容时候在打印一些爬到的东西这些内容是打印不出来的,因为python中的打印好像用的是gbk默认,而且修改不了好像,虽然在头部设置了utf8,但是只是当前程序的编码解码utf8,打印仍然是gbk。后来一想,不对啊,这里的内容我是打印出来了的。而且在一些网站上做json校验的时候是没有问题的,从网上查询了好多,但是帮助不大,由于字符串长度太长了,最后实在憋得没办法了,那么我就一段一段的内容复制过来做验证吧,花了好长时间一点一点的使,到最后都可以被json.loads、、、、后来想拿我就反着来吧,删除了;号,竟然好了,最终明白,确实不是json的期望值,其中;是一个,还有一个尾部的空白行也是不行,中间尝试的时候我尝试把;replace成'',都不行,那会是直接从页面获取的数据不是粘贴过来的,应该是默认带了空白行或者是换行符了,所以需要把这些也去一下。

简洁一点:字符串不符合反序列化的要求,非法内容存在。

猜你喜欢

转载自www.cnblogs.com/blackball9/p/12342162.html