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

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

Patricia Arquette
Patricia ArquetteOriginal
2024-11-03 15:12:03285Durchsuche

How do I serialize NumPy arrays for JSON in Django?

Umgang mit NumPy-Array-Serialisierung für JSON

Beim Arbeiten mit NumPy-Arrays in der Webentwicklung unter Verwendung des Django-Frameworks kann der Fehler auftreten:

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

Dieser Fehler tritt auf, weil NumPy-Arrays standardmäßig nicht JSON-serialisierbar sind. JSON, ein beliebtes Datenaustauschformat, unterstützt nur bestimmte Datentypen, wie z. B. Ganzzahlen, Zeichenfolgen und Arrays dieser Typen. NumPy-Arrays sind jedoch komplexe, mehrdimensionale Objekte, die nicht direkt in JSON dargestellt werden können.

Lösung: Konvertieren von NumPy-Arrays für JSON

Um dieses Problem zu beheben, können Sie konvertieren das NumPy-Array in eine JSON-kompatible Darstellung. Die empfohlene Methode ist die Verwendung der Methode .tolist() für das Array:

<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>

Die Methode .tolist() konvertiert das NumPy-Array in eine verschachtelte Liste von Elementen, die mit JSON kompatibel ist.

Speichern und Laden der JSON-Daten

Um die konvertierte Liste im JSON-Format zu speichern, verwenden Sie den folgenden Code:

<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>

Dieser Code speichert die Listen Sie b als JSON-Datei im angegebenen Pfad mit der richtigen Formatierung auf.

So laden und rekonstruieren Sie das NumPy-Array aus der JSON-Datei:

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

Dieser Code liest die JSON-Datei und konvertiert sie zurück in eine Liste new_b. Die Funktion np.array() rekonstruiert dann das NumPy-Array new_a.

Fazit

Durch die Konvertierung von NumPy-Arrays in JSON-kompatible Listen und die Verwendung geeigneter JSON-Serialisierungs- und Deserialisierungsmethoden können Sie die Speicherung und den Abruf von NumPy-Daten in Django-Kontextvariablen effektiv handhaben. Dadurch wird sichergestellt, dass Daten zum Rendern sicher und effizient zwischen dem Django-Backend und dem Frontend übertragen werden können.

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

Stellungnahme:
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