不一定,把strict设为True本身不会让JSONDecoder拒绝NaN、Infinity和-Infinity。按Python 3.14标准库json.JSONDecoder的说明,默认解码会把这三种字面量理解成对应float,这超出了JSON规范;strict参数主要控制字符串内0至31控制字符是否报错,True并不等于“全面标准验证开关”。因此,先把“加了strict=True”当成跨系统合规的结论并不稳妥。

适用条件上,这一判断针对Python 3.14的json.JSONDecoder,默认构造适用;项目自行包装过的decoder还须核额外处理;若换版本、换第三方JSON库或在入口前做了预处理,结论要重新核对。在太原市小店区维护台式电脑上的脚本、数据导入或接口联调时,先确认实际解释器版本、decoder构造参数和调用路径,不能只看代码里出现strict=True。
观察重点有两项。其一,NaN、Infinity、-Infinity是否出现在原始报文中,解析后拿到的是float还是别的类型;其二,parse_constant有没有被定制。该参数可对这三个常量单独处理:返回自定义值,或直接抛错。结果分支也不同:保持默认时,三种常量仍可能被接受;parse_constant抛错时,解析会在遇到常量时失败;映射成None或字符串标记时,则要看下游能否识别,不能当作标准JSON数值继续传播。
风险在于,一种错误是把NaN字符直接替换成0。0是合法数值,替换会悄悄改变业务含义,也会破坏原字节,后续对账和回溯都困难。另一个风险是把“本地解析成功”误当成“跨系统合规”:接收端可能使用严格JSON解析器,或按自身契约拒绝这类非常量数值。桌面机维护场景中,批量改文件前应先保留原始副本,避免把解析差异扩散到业务数据。
下一步,先核默认或定制decoder与真实数据类型,保留原字节,再与接收端确认契约。需要拒绝这些非标准数值时,可由维护者让parse_constant抛错;显式映射则属于另行约定的数据转换,不证明原报文符合标准,并在小样本、独立环境验证报错位置和下游表现;确认后再处理批量数据。
小店区台式电脑用户可拨400-877-9605,先整理decoder定制、三种常量和去敏错误。电脑快修网提供信息展示与第三方维修对接,具体地址、电脑侧检查是否支持及安排需当次核实,启用范围不代表即时履约。