Gestion de la sérialisation des tableaux NumPy pour JSON
Lorsque vous travaillez avec des tableaux NumPy dans le développement Web à l'aide du framework Django, vous pouvez rencontrer l'erreur :
array([ 0, 239, 479, 717, 952, 1192, 1432, 1667], dtype=int64) is not JSON serializable
Cette erreur se produit car les tableaux NumPy ne sont pas sérialisables JSON par défaut. JSON, un format d'échange de données populaire, ne prend en charge que certains types de données, tels que les entiers, les chaînes et les tableaux de ces types. Cependant, les tableaux NumPy sont des objets complexes et multidimensionnels qui ne peuvent pas être directement représentés en JSON.
Solution : Conversion des tableaux NumPy pour JSON
Pour résoudre ce problème, vous pouvez convertir le tableau NumPy dans une représentation compatible JSON. La méthode recommandée est d'utiliser la méthode .tolist() sur le tableau :
<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>
La méthode .tolist() convertit le tableau NumPy en une liste imbriquée d'éléments, compatible avec JSON.
Enregistrement et chargement des données JSON
Pour enregistrer la liste convertie au format JSON, utilisez le code suivant :
<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>
Ce code enregistrera le lister b en tant que fichier JSON au chemin spécifié avec un formatage approprié.
Pour charger et reconstruire le tableau NumPy à partir du fichier JSON :
<code class="python">new_b = json.loads(codecs.open(file_path, 'r', encoding='utf-8').read()) new_a = np.array(new_b)</code>
Ce code lit le fichier JSON et le convertit retour dans une liste new_b. La fonction np.array() reconstruit ensuite le tableau NumPy new_a.
Conclusion
En convertissant les tableaux NumPy en listes compatibles JSON et en utilisant les méthodes de sérialisation et de désérialisation JSON appropriées , vous pouvez gérer efficacement le stockage et la récupération des données NumPy dans les variables contextuelles de Django. Cela garantit que les données peuvent être transférées de manière sécurisée et efficace entre le backend Django et le frontend pour le rendu.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!