Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Mensiri Tatasusunan NumPy untuk Pembolehubah Konteks Django?

Bagaimana untuk Mensiri Tatasusunan NumPy untuk Pembolehubah Konteks Django?

DDD
DDDasal
2024-11-04 01:38:02528semak imbas

How to Serialize NumPy Arrays for Django Context Variables?

Ralat Pensirilan JSON Array NumPy

Apabila cuba menyimpan tatasusunan NumPy sebagai pembolehubah konteks Django, mesej ralat mungkin menunjukkan bahawa tatasusunan tidak boleh bersiri JSON.

Penjelasan:

JSON, format data untuk aplikasi web, memerlukan data berada dalam struktur khusus untuk penghantaran yang cekap. Tatasusunan NumPy, sebaliknya, tidak serasi dengan format JSON, oleh itu ralat berlaku.

Penyelesaian:

Untuk menyelesaikan isu ini dan berjaya mensiri tatasusunan , tukarkannya kepada format mesra JSON sebelum menyimpannya sebagai pembolehubah konteks. Kaedah ".tolist()" tatasusunan NumPy menyediakan penyelesaian yang mudah:

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

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

Kini, pembolehubah b mengandungi data yang sama dalam format yang serasi dengan siri JSON. Anda boleh menyimpannya sebagai pembolehubah konteks Django tanpa menghadapi ralat penyirian.

Nota Tambahan:

Untuk menyahsiri rentetan JSON kembali ke dalam tatasusunan NumPy, gunakan yang berikut langkah:

  1. Baca fail JSON:

    <code class="python">obj_text = codecs.open(file_path, 'r', encoding='utf-8').read()</code>
  2. Muat rentetan JSON:

    <code class="python">b_new = json.loads(obj_text)</code>
  3. Tukar senarai kembali kepada tatasusunan NumPy:

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

Dengan langkah-langkah ini, anda boleh mensiri dan menyahsiri tatasusunan NumPy dengan berkesan untuk menyimpan dan mendapatkan semula data dalam aplikasi Django.

Atas ialah kandungan terperinci Bagaimana untuk Mensiri Tatasusunan NumPy untuk Pembolehubah Konteks Django?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn