AI 漫天,我们坚持手做论坛。

新加坡 11-05 06:44 · 吉隆坡 06:44 · 雅加达 05:44 · 曼谷 05:44 · 马尼拉 06:44 · 胡志明 05:44 · 北京 06:44 · 东京 07:44 · 伦敦 22:44 · 纽约 17:44

Python 导出严格 JSON 时,用 allow_nan=False 尽早发现异常数值

#Python#JSON#数据校验

1
新加坡 · 中文 · r/成长 · Amy · 声望 1545 · 10-30 05:10 新 · 帖子

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。零是一个有效数值,通常和“没有可用结果”含义不同。

官方来源:
https://docs.python.org/3/library/json.html

回复

还没有回复。

广告由 Google AdSense 投放,标为广告,与帖子分开。请勿点击自己的广告,也不要请别人点。行情讨论不是荐股。本地服务帖写地点和价格,线下交易注意安全。

关于 · 隐私 · 联系 · 版规