TypeError: 'float32' 유형의 개체는 JSON을 직렬화할 수 없습니다.
같이 일하고 있어요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()
을 통해 현악기 형태로conversion table
일부 유형만 지원합니다(아래 문서 참조).
이 문제를 피하기 위해 문자열을 건네주는 것이 좋다고 생각하는 이유는 다음과 같습니다.numpy.float32
테이블에는 없어요
일부에서는 스트링을 명시적으로 전달한다고 코멘트하고 있습니다.dumps
"잘못된 것 같다" 여기에 문서를 추가합니다.
json.disci(obj, *, skipkeys=False, secure_ascii=)맞아요, check_backs=True, allow_nan=True, cls=None, ind=None, separators=None, default=None, sort_keys=False, **kw) 이 변환 테이블을 사용하여 obj를 JSON 형식의 스트링으로 시리얼화합니다.인수의 의미는 dump()와 동일합니다.
참고 JSON의 키/값 쌍의 키는 항상 str 유형입니다.사전이 JSON으로 변환되면 사전의 모든 키가 문자열로 강제됩니다.따라서 사전을 JSON으로 변환했다가 다시 사전으로 변환하면 사전이 원본 사전과 같지 않을 수 있습니다.즉, x에 문자열이 아닌 키가 있는 경우 loads(x) != x가 됩니다.
다음 공식 문서에서 인용:https://docs.python.org/3/library/json.html
언급URL : https://stackoverflow.com/questions/53082708/typeerror-object-of-type-float32-is-not-json-serializable
'programing' 카테고리의 다른 글
컨트롤러의 각도 변환에 대한 올바른 사용 (0) | 2023.03.08 |
---|---|
단락(&) 조건부 성분으로 아무것도 아닌 0을 나타내는 반응 (0) | 2023.03.08 |
워드프레스 블로그를 정적 웹페이지로 github 페이지에 호스트할 수 있습니까? (0) | 2023.03.08 |
모든 도메인을 받아들이도록 Access-Control-Allow-Origin을 설정할 경우 어떤 보안 위험이 있습니까? (0) | 2023.03.08 |
정의하다WP_DEBUG', true), 오류는 표시되지 않습니다. (0) | 2023.03.08 |