Heim >Backend-Entwicklung >Python-Tutorial >Wie serialisiere ich NumPy-Arrays für Django-Kontextvariablen?
NumPy-Array-JSON-Serialisierungsfehler
Beim Versuch, ein NumPy-Array als Django-Kontextvariable zu speichern, kann eine Fehlermeldung darauf hinweisen, dass das Array ist kein JSON serialisierbar.
Erklärung:
JSON, ein Datenformat für Webanwendungen, erfordert für eine effiziente Übertragung, dass Daten in einer bestimmten Struktur vorliegen. NumPy-Arrays hingegen sind nicht von Natur aus mit dem JSON-Format kompatibel, daher der Fehler.
Lösung:
Um dieses Problem zu beheben und das Array erfolgreich zu serialisieren , konvertieren Sie es in ein JSON-freundliches Format, bevor Sie es als Kontextvariable speichern. Die „.tolist()“-Methode von NumPy-Arrays bietet eine einfache Lösung:
<code class="python">import numpy as np a = np.arange(10).reshape(2,5) b = a.tolist() # Convert NumPy array to nested lists</code>
Jetzt enthält die Variable b die gleichen Daten in einem Format, das mit der JSON-Serialisierung kompatibel ist. Sie können es als Django-Kontextvariable speichern, ohne dass der Serialisierungsfehler auftritt.
Zusätzliche Hinweise:
Um die JSON-Zeichenfolge wieder in ein NumPy-Array zu deserialisieren, verwenden Sie Folgendes Schritte:
JSON lesen Datei:
<code class="python">obj_text = codecs.open(file_path, 'r', encoding='utf-8').read()</code>
Laden Sie die JSON-Zeichenfolge:
<code class="python">b_new = json.loads(obj_text)</code>
Konvertieren Sie die Liste zurück in ein NumPy-Array:
<code class="python">a_new = np.array(b_new)</code>
Mit diesen Schritten können Sie NumPy-Arrays effektiv serialisieren und deserialisieren zum Speichern und Abrufen von Daten in Django-Anwendungen.
Das obige ist der detaillierte Inhalt vonWie serialisiere ich NumPy-Arrays für Django-Kontextvariablen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!