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

Posted blackball9

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在反序列化数据的时候报错raise JSONDecodeError("Expecting value", s, err.value) from None json.decode相关的知识,希望对你有一定的参考价值。

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

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

以上是关于在反序列化数据的时候报错raise JSONDecodeError("Expecting value", s, err.value) from None json.decode的主要内容,如果未能解决你的问题,请参考以下文章

Spring数据redis在反序列化List类型时返回null

JsonSerializer 在反序列化期间不使用内部构造函数

是否有可能在反序列化时以某种方式捕获与任何 POCO 属性不匹配的 JSON 数据的其余部分?

在反序列化过程中出现下一个异常:“源数据中的无效字段:0”。如何找出源代码中的原因/错误位置?

java对象序列化的理解

在反序列化期间将 JSON 日期转换为 .NET DateTime 的正确方法