我正在尝试使用NaN
将包含浮点数和json.dumps()
的数组编码为Python中的JSON字符串。
但编码的JSON字符串未在PHP中成功解码。 NaN
会导致此问题吗?我该如何解决这种情况?
答案 0 :(得分:38)
json.dumps
有一个allow_nan
参数,默认为True。
NaN,Infinity和-Infinity不是JSON的一部分,但它们在Javascript中是标准的,因此它们是常用的扩展。如果收件人无法处理,请设置allow_nan=False
。但是当你尝试序列化NaN时,你会得到ValueError。
答案 1 :(得分:15)
NaN不是有效的JSON符号,请参阅http://json.org/
中的规范您的编码器可能应该将NaN编码为null
。
答案 2 :(得分:12)
尝试使用simplejson:
pip install simplejson
然后在代码中:
import simplejson
response = df.to_dict('records')
simplejson.dumps(response, ignore_nan=True,default=datetime.datetime.isoformat)
ignore_nan标志将正确处理所有NaN - >空转换
默认标志将允许simplejson正确解析您的日期时间。