json.dumps()
을 사용하여 Python의 JSON 문자열에 float 및 NaN
이 포함 된 배열을 인코딩하려고합니다.json에서 NaN 보내기
인코딩 된 JSON 문자열이 PHP에서 성공적으로 디코딩되지 않습니다. NaN
이이 문제의 원인입니까? 이 상황을 어떻게 해결할 수 있습니까?
json.dumps()
을 사용하여 Python의 JSON 문자열에 float 및 NaN
이 포함 된 배열을 인코딩하려고합니다.json에서 NaN 보내기
인코딩 된 JSON 문자열이 PHP에서 성공적으로 디코딩되지 않습니다. NaN
이이 문제의 원인입니까? 이 상황을 어떻게 해결할 수 있습니까?
json.dumps
에는 allow_nan
매개 변수가 있으며, 기본값은 True입니다.
NaN, Infinity 및 -Infinity는 JSON의 일부가 아니지만 Javascript에서는 표준이므로 일반적으로 사용되는 확장입니다. 수신자가 처리 할 수없는 경우 allow_nan=False
으로 설정하십시오. 하지만 NaN을 serialize하려고하면 ValueError가 발생합니다.
NaN의 유효한 JSON 기호 아니다, 아마 대신 null
으로 NaN의 인코딩해야 http://json.org/
엔코더의 사양을 참조하십시오.
에 한번 사용 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 datetimes를 올바르게 구문 분석합니다.
출력되는 JSON의 모습은 무엇입니까? NaN은 파이썬에서 네이티브 데이터 타입이 아니기 때문에 전혀 작동하지 않습니다. –
@Daniel : 사실, 만약 당신이''float ("nan")'을 쓰면 그것을 얻을 수 있습니다. 그리고'json.dumps (float ("nan"))'호출은 당신에게 "NaN"을 준다. –