Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Mensirikan Array NumPy ke JSON dalam Python?

Bagaimana untuk Mensirikan Array NumPy ke JSON dalam Python?

Linda Hamilton
Linda Hamiltonasal
2024-11-03 14:18:03786semak imbas

How to Serialize NumPy Arrays to JSON in Python?

JSON Serializing NumPy Arrays

Apabila menghadapi ralat "array is not JSON serializable" semasa memuatkan halaman web, ini bermakna NumPy tatasusunan dalam pembolehubah konteks Django tidak boleh ditukar kepada format JSON. JSON (JavaScript Object Notation) ialah format data biasa yang digunakan untuk pertukaran data, dan ia memerlukan data berada dalam struktur tertentu. Tatasusunan NumPy, sebaliknya, mempunyai struktur yang lebih kompleks yang tidak boleh bersiri terus kepada JSON.

Untuk menyelesaikan isu ini, anda boleh menggunakan kaedah ".tolist()" pada tatasusunan NumPy. Kaedah ini menukar tatasusunan kepada senarai bersarang, yang kemudiannya boleh disirikan kepada JSON. Berikut ialah contoh:

<code class="python">import numpy as np
import codecs, json

a = np.arange(10).reshape(2, 5)  # a 2 by 5 array
b = a.tolist()  # nested lists with the same data and indices

file_path = "/path.json"  ## your path variable
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>

Untuk "menyahjsonify" tatasusunan, anda boleh menggunakan kod berikut:

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

Atas ialah kandungan terperinci Bagaimana untuk Mensirikan Array NumPy ke JSON dalam Python?. 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