numpy.float32
숫자로 작업 중이며 JSON
으로 이동하지 않습니다. 이 문제를 극복하기위한 올바른 접근 방식은 무엇입니까?
import numpy as np
import json
a = np.float32(1)
json.dumps(a)
TypeError: Object of type 'float32' is not JSON serializable
해결 방법
문자열이어야하므로 다음을 가질 수 있습니다.
json.dumps(str(a))
편집하다:
JSON은 객체 데이터를 직렬화하기위한 형식입니다. Python 유형에 대해 실제로 신경 쓰거나 알지 못합니다. json 패키지는 json.dumps ()
를 전달하는 모든 객체를 변환 테이블
을 통해 문자열 형식으로 변환하려고합니다. 일부 유형 만 지원합니다 (아래 문서 참조).
이것이이 문제를 피하기 위해 문자열을 전달하는 것이 좋은 생각이라고 생각하는 이유입니다. numpy.float32
는 테이블에 없습니다.
일부는 문자열을 dumps
에 명시 적으로 전달하는 것이 "잘못된 것 같습니다"라고 언급했기 때문에 여기에 문서를 추가하겠습니다.
json.dumps (obj, *, skipkeys = False, ensure_ascii = True, check_circular=True, allow_nan=True, cls=None, indent=None, separators=None, default=None, sort_keys=False, **kw) Serialize obj to a JSON formatted str using this conversion table. The arguments have dump ()에서와 같은 의미입니다.
참고 JSON의 키 / 값 쌍에있는 키는 항상 str 유형입니다. 언제 a dictionary is converted into JSON, all the keys of the dictionary are coerced to strings. As a result of this, if a dictionary is converted into JSON and then back into a dictionary, the dictionary may not equal the original one. That is, loads(dumps(x)) != x if x has 비 문자열 키.
참조 페이지 https://stackoverflow.com/questions/53082708
'파이썬' 카테고리의 다른 글
파이썬 Python에서 Numpy Matrix에서 목록을 만드는 방법 (0) | 2020.10.08 |
---|---|
파이썬 Django Model Field 객체의 값을 얻는 방법 (0) | 2020.10.08 |
파이썬 디코딩 된 JSON 객체에서 "u"를 어떻게 제거합니까? (0) | 2020.10.08 |
파이썬 목록에있는 연속 요소의 차이점 (0) | 2020.10.07 |
파이썬 Dict 목록에서 공통 Dict 필드의 min () 값을 찾습니다. (0) | 2020.10.07 |
댓글