Rumah >pembangunan bahagian belakang >Tutorial Python >Mengapakah Saya Tidak Boleh Mensirikan Array NumPy kepada JSON dalam Django?
NumPy Arrays dan JSON Serialization: Unveiling the Enigma
Apabila bekerja dengan NumPy arrays dan Django, anda mungkin menghadapi ralat samar, "NumPy array tidak boleh bersiri JSON." Mesej yang membingungkan ini timbul apabila cuba menyimpan tatasusunan NumPy sebagai pembolehubah konteks Django dan memaparkannya pada halaman web.
Untuk memahami isu ini, kami menyelidiki bidang pensirilan JSON. Notasi Objek JavaScript (JSON) ialah format data popular yang digunakan untuk pertukaran dan penyimpanan data. Walau bagaimanapun, tatasusunan NumPy, sebagai tatasusunan berbilang dimensi, tidak boleh ditukar terus kepada JSON. Di sinilah ralat berpunca.
Penyelesaian: .tolist() to the Rescue
Untuk menyelesaikan masalah ini, kami menggunakan '.tolist()' kaedah. Kaedah ini menukar tatasusunan NumPy kepada senarai bersarang. Senarai bersarang, tidak seperti tatasusunan, boleh disirikan kepada JSON, sekali gus merapatkan jurang antara NumPy dan JSON.
Pelaksanaan: Panduan Langkah demi Langkah
<code class="python">import numpy as np import codecs, json</code>
<code class="python">a = np.arange(10).reshape(2, 5) # a 2 by 5 array</code>
<code class="python">b = a.tolist() # nested lists with same data, indices</code>
<code class="python">file_path = "/path.json" ## your path variable</code>
<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>
Unsirialisasi: Memulihkan Tatasusunan NumPy
Untuk memulihkan tatasusunan NumPy daripada fail JSON:
<code class="python">obj_text = codecs.open(file_path, 'r', encoding='utf-8').read()</code>
<code class="python">b_new = json.loads(obj_text)</code>
<code class="python">a_new = np.array(b_new)</code>
Kesimpulan
Dengan memahami keperluan untuk penyirian JSON dan menggunakan '.tolist()' kaedah, kita boleh merapatkan jurang antara tatasusunan NumPy dan Django dengan lancar. Ini membolehkan kami menyimpan dan mendapatkan semula tatasusunan NumPy dengan mudah sebagai pembolehubah konteks, memperkasakan aplikasi web kami dengan keupayaan manipulasi data lanjutan.
Atas ialah kandungan terperinci Mengapakah Saya Tidak Boleh Mensirikan Array NumPy kepada JSON dalam Django?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!