>백엔드 개발 >파이썬 튜토리얼 >Django 컨텍스트 변수에 대한 NumPy 배열을 직렬화하는 방법은 무엇입니까?

Django 컨텍스트 변수에 대한 NumPy 배열을 직렬화하는 방법은 무엇입니까?

DDD
DDD원래의
2024-11-04 01:38:02584검색

How to Serialize NumPy Arrays for Django Context Variables?

NumPy 배열 JSON 직렬화 오류

NumPy 배열을 Django 컨텍스트 변수로 저장하려고 하면 오류 메시지가 배열이 JSON은 직렬화 가능하지 않습니다.

설명:

웹 애플리케이션용 데이터 형식인 JSON은 효율적인 전송을 위해 데이터가 특정 구조에 있어야 합니다. 반면 NumPy 배열은 본질적으로 JSON 형식과 호환되지 않으므로 오류가 발생합니다.

해결책:

이 문제를 해결하고 배열을 성공적으로 직렬화하려면 , 컨텍스트 변수로 저장하기 전에 JSON 친화적인 형식으로 변환하세요. NumPy 배열의 ".tolist()" 메서드는 간단한 솔루션을 제공합니다.

<code class="python">import numpy as np

a = np.arange(10).reshape(2,5)
b = a.tolist()  # Convert NumPy array to nested lists</code>

이제 변수 b에는 JSON 직렬화와 호환되는 형식으로 동일한 데이터가 포함됩니다. 직렬화 오류 없이 Django 컨텍스트 변수로 저장할 수 있습니다.

추가 참고 사항:

JSON 문자열을 다시 NumPy 배열로 역직렬화하려면 다음을 사용하세요. 단계:

  1. JSON 파일 읽기:

    <code class="python">obj_text = codecs.open(file_path, 'r', encoding='utf-8').read()</code>
  2. JSON 문자열 로드:

    <code class="python">b_new = json.loads(obj_text)</code>
  3. 목록을 다시 NumPy 배열로 변환:

    <code class="python">a_new = np.array(b_new)</code>

이 단계를 사용하면 Django 애플리케이션에서 데이터를 저장하고 검색하기 위해 NumPy 배열을 효과적으로 직렬화 및 역직렬화할 수 있습니다.

위 내용은 Django 컨텍스트 변수에 대한 NumPy 배열을 직렬화하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.