Heim > Backend-Entwicklung > Python-Tutorial > Wie serialisiere ich NumPy-Arrays in Django für JSON-Kompatibilität?

Wie serialisiere ich NumPy-Arrays in Django für JSON-Kompatibilität?

Mary-Kate Olsen
Freigeben: 2024-11-03 16:06:30
Original
723 Leute haben es durchsucht

How to Serialize NumPy Arrays in Django for JSON Compatibility?

NumPy-Array-Serialisierungsproblem mit Django

Bei der Verwendung von NumPy-Arrays in Django-Kontexten kann es zu einer Fehlermeldung kommen, die besagt, dass das Array kein JSON ist serialisierbar. Dies liegt daran, dass NumPy-Arrays standardmäßig nicht direkt im JSON-Format dargestellt werden können.

Erklärung der Serialisierung

Serialisierung beinhaltet die Konvertierung von Objekten in ein Format, das übertragen werden kann einem Netzwerk oder dauerhaft gespeichert. JSON (JavaScript Object Notation) ist ein beliebtes Datenformat, das für beide Zwecke verwendet wird. Allerdings sind Arrays, die in der nativen Datenstruktur von NumPy gespeichert sind (die mit der Speicheroptimierung übereinstimmt), nicht mit dem JSON-Format kompatibel.

Lösung: Konvertieren in Listen

Um dieses Problem zu beheben, Sie können das NumPy-Array mit der Methode .tolist() in eine verschachtelte Liste konvertieren. Dieser Prozess erstellt eine Listenstruktur, die von Natur aus mit der JSON-Serialisierung kompatibel ist.

Codebeispiel

Hier ist ein Beispiel für die Serialisierung und Deserialisierung eines NumPy-Arrays in Python:

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

# Create a 2D NumPy array
a = np.arange(10).reshape(2, 5)

# Convert the array to a list
b = a.tolist()

# Serialize the list using JSON
json.dump(b, codecs.open('path.json', 'w', encoding='utf-8'),
          separators=(',', ':'),
          sort_keys=True,
          indent=4)

# De-serialize the JSON back to a NumPy array
obj_text = codecs.open('path.json', 'r', encoding='utf-8').read()
b_new = json.loads(obj_text)
a_new = np.array(b_new)</code>
Nach dem Login kopieren

Dieser Prozess wandelt das NumPy-Array in ein Format um, das über das Netzwerk übertragen und anschließend in seine ursprüngliche Form rekonstruiert werden kann.

Das obige ist der detaillierte Inhalt vonWie serialisiere ich NumPy-Arrays in Django für JSON-Kompatibilität?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage