Django에서 NumPy 배열을 JSON으로 직렬화할 수 없는 이유는 무엇입니까?
Nov 03, 2024 pm 04:44 PMNumPy 배열 및 JSON 직렬화: Enigma 공개
NumPy 배열 및 Django로 작업할 때 "NumPy"라는 암호 오류가 발생할 수 있습니다. 배열은 JSON 직렬화가 불가능합니다." 이 당황스러운 메시지는 NumPy 배열을 Django 컨텍스트 변수로 저장하고 웹페이지에 렌더링하려고 할 때 발생합니다.
이 문제를 이해하기 위해 JSON 직렬화의 영역을 탐구합니다. JSON(JavaScript Object Notation)은 데이터 교환 및 저장에 사용되는 널리 사용되는 데이터 형식입니다. 그러나 NumPy 배열은 다차원 배열이므로 JSON으로 직접 변환할 수 없습니다. 여기서 오류가 발생합니다.
해결 방법: .tolist() to the Rescue
이 문제를 해결하기 위해 '.tolist()'를 사용합니다. 방법. 이 메소드는 NumPy 배열을 중첩 목록으로 변환합니다. 배열과 달리 중첩된 목록은 JSON으로 직렬화될 수 있으므로 NumPy와 JSON 사이의 격차를 해소할 수 있습니다.
구현: 단계별 가이드
- NumPy, 코덱 및 json 가져오기:
<code class="python">import numpy as np import codecs, json</code>
- NumPy 배열 만들기:
<code class="python">a = np.arange(10).reshape(2, 5) # a 2 by 5 array</code>
- 배열을 중첩 목록으로 변환 '.tolist()' 사용:
<code class="python">b = a.tolist() # nested lists with same data, indices</code>
- JSON 저장소의 파일 경로 정의:
<code class="python">file_path = "/path.json" ## your path variable</code>
- 중첩 목록 직렬화 JSON으로:
<code class="python">json.dump(b, codecs.open(file_path, 'w', encoding='utf-8'), separators=(',', ':'), sort_keys=True, indent=4) ### this saves the array in .json format</code>
직렬화 해제: NumPy 배열 복구
JSON 파일에서 NumPy 배열을 복구하려면:
- JSON 파일을 문자열로 읽기:
<code class="python">obj_text = codecs.open(file_path, 'r', encoding='utf-8').read()</code>
- JSON 문자열을 중첩 목록으로 로드:
<code class="python">b_new = json.loads(obj_text)</code>
- 변환 중첩 목록을 NumPy 배열로 다시 변환:
<code class="python">a_new = np.array(b_new)</code>
결론
JSON 직렬화의 필요성을 이해하고 '.tolist()' 사용 방법을 사용하면 NumPy 배열과 Django 사이의 격차를 원활하게 메울 수 있습니다. 이를 통해 NumPy 배열을 컨텍스트 변수로 쉽게 저장하고 검색할 수 있어 웹 애플리케이션에 고급 데이터 조작 기능이 강화됩니다.
위 내용은 Django에서 NumPy 배열을 JSON으로 직렬화할 수 없는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

인기 기사

인기 기사

뜨거운 기사 태그

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











Tensorflow 또는 Pytorch로 딥 러닝을 수행하는 방법은 무엇입니까?
