我正在嘗試使用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」。 –