我正在尝试使用json.dumps()
将包含浮动数组和NaN
的数组编码为Python中的JSON字符串。在json中发送NaN
但编码的JSON字符串未在PHP中成功解码。 NaN
是否会导致此问题?我该如何解决这种情况?
我正在尝试使用json.dumps()
将包含浮动数组和NaN
的数组编码为Python中的JSON字符串。在json中发送NaN
但编码的JSON字符串未在PHP中成功解码。 NaN
是否会导致此问题?我该如何解决这种情况?
json.dumps
有一个allow_nan
参数,默认为True。
NaN,Infinity和-Infinity不是JSON的一部分,但它们在Javascript中是标准的,所以它们是常用的扩展。如果收件人无法处理它们,请设置allow_nan=False
。但是当你尝试序列化NaN时,你会得到ValueError。
楠不是一个有效的JSON符号,请参阅该规范在http://json.org/
您的编码应该可能已经在编码为NaN null
代替。
尝试使用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正确解析日期。
输出的JSON是什么样的? NaN不是Python中的本地数据类型,所以我很惊讶它可以工作。 –
@丹尼尔:其实,如果你做'浮动(“南”)',你可以得到它。并调用'json.dumps(float(“nan”))'给你“NaN”。 –