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!