반응형
질문
NumPy 배열을 생성한 후 Django 컨텍스트 변수로 저장한 후, 웹페이지를 로드할 때 다음과 같은 오류가 발생합니다:
array([ 0, 239, 479, 717, 952, 1192, 1432, 1667], dtype=int64)은(는) JSON 직렬화할 수 없습니다.
이게 무슨 뜻인가요?
답변
나는 정기적으로 np.arrays를 "jsonify"합니다. 먼저 배열에 ".tolist()" 메소드를 사용해보세요. 다음과 같이:
import numpy as np
import codecs, json
a = np.arange(10).reshape(2,5) # 2 by 5 배열
b = a.tolist() # 동일한 데이터와 인덱스를 가진 중첩 리스트
file_path = "/path.json" ## 경로 변수
json.dump(b, codecs.open(file_path, 'w', encoding='utf-8'),
separators=(',', ':'),
sort_keys=True,
indent=4) ### 이렇게 하면 배열을 .json 형식으로 저장합니다.
배열을 "unjsonify"하기 위해 다음을 사용하세요:
obj_text = codecs.open(file_path, 'r', encoding='utf-8').read()
b_new = json.loads(obj_text)
a_new = np.array(b_new)
반응형
댓글