Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah cara saya menyusun susunan NumPy untuk JSON dalam Django?

Bagaimanakah cara saya menyusun susunan NumPy untuk JSON dalam Django?

Patricia Arquette
Patricia Arquetteasal
2024-11-03 15:12:03299semak imbas

How do I serialize NumPy arrays for JSON in Django?

Mengendalikan Pensirian Tatasusunan NumPy untuk JSON

Apabila bekerja dengan tatasusunan NumPy dalam pembangunan web menggunakan rangka kerja Django, anda mungkin menghadapi ralat:

array([   0,  239,  479,  717,  952, 1192, 1432, 1667], dtype=int64) is not JSON serializable

Ralat ini berlaku kerana tatasusunan NumPy tidak boleh bersiri JSON secara lalai. JSON, format pertukaran data yang popular, hanya menyokong jenis data tertentu, seperti integer, rentetan dan tatasusunan jenis ini. Walau bagaimanapun, tatasusunan NumPy ialah objek berbilang dimensi yang kompleks yang tidak boleh diwakili secara langsung dalam JSON.

Penyelesaian: Menukar Tatasusunan NumPy untuk JSON

Untuk menyelesaikan isu ini, anda boleh menukar tatasusunan NumPy menjadi perwakilan yang serasi dengan JSON. Kaedah yang disyorkan ialah menggunakan kaedah .tolist() pada tatasusunan:

<code class="python">import numpy as np
a = np.arange(10).reshape(2,5) # Create a 2x5 array
b = a.tolist() # Convert to a list of lists</code>

Kaedah .tolist() menukar tatasusunan NumPy kepada senarai elemen bersarang, yang serasi dengan JSON.

Menyimpan dan Memuatkan Data JSON

Untuk menyimpan senarai yang ditukar dalam format JSON, gunakan kod berikut:

<code class="python">import codecs, json
file_path = "/path/to/file.json"
json.dump(b, codecs.open(file_path, 'w', encoding='utf-8'), separators=(',', ':'), sort_keys=True, indent=4)</code>

Kod ini akan menyimpan senarai b sebagai fail JSON pada laluan yang ditentukan dengan pemformatan yang betul.

Untuk memuatkan dan membina semula tatasusunan NumPy daripada fail JSON:

<code class="python">new_b = json.loads(codecs.open(file_path, 'r', encoding='utf-8').read())
new_a = np.array(new_b)</code>

Kod ini membaca fail JSON dan menukarnya kembali ke dalam senarai new_b. Fungsi np.array() kemudian membina semula tatasusunan NumPy new_a.

Kesimpulan

Dengan menukar tatasusunan NumPy kepada senarai yang serasi dengan JSON dan menggunakan kaedah siri dan penyahsirilan JSON yang sesuai , anda boleh mengendalikan penyimpanan dan mendapatkan semula data NumPy dalam pembolehubah konteks Django dengan berkesan. Ini memastikan data boleh dipindahkan dengan selamat dan cekap antara bahagian belakang Django dan bahagian hadapan untuk pemaparan.

Atas ialah kandungan terperinci Bagaimanakah cara saya menyusun susunan NumPy untuk JSON dalam 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