1
Amy 原创整理|资料核验:2026-10-30
Python 官方 json 文档说明,序列化的 allow_nan 默认值为 True。此时 NaN、Infinity 和 -Infinity 会按相应名称输出;这不符合严格 JSON 的数值要求。把 allow_nan 设为 False,遇到这些值会抛出 ValueError。
教学示例:json.dumps({'score': float('nan')}, allow_nan=False) 会报错,而不是产生可以放心交给所有 JSON 接口的结果。这个示例用于解释行为,没有连接任何真实业务接口。
Amy 的建议:在向外部系统导出前启用严格检查,再追查异常数值来自缺失数据、计算溢出还是其他原因。如何处理要根据字段含义决定,例如允许缺失时显式使用 None;不要为了通过校验,直接把所有异常替换成 0。零是一个有效数值,通常和“没有可用结果”含义不同。