Maison  >  Article  >  développement back-end  >  Comment sérialiser des tableaux NumPy en JSON en Python ?

Comment sérialiser des tableaux NumPy en JSON en Python ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-03 14:18:03774parcourir

How to Serialize NumPy Arrays to JSON in Python?

JSON sérialisant les tableaux NumPy

Lorsque vous rencontrez l'erreur "Le tableau n'est pas sérialisable JSON" lors du chargement de la page Web, cela signifie que le NumPy Le tableau dans la variable contextuelle Django ne peut pas être converti au format JSON. JSON (JavaScript Object Notation) est un format de données courant utilisé pour l'échange de données et nécessite que les données se trouvent dans une structure spécifique. Les tableaux NumPy, en revanche, ont une structure plus complexe qui ne peut pas être directement sérialisée en JSON.

Pour résoudre ce problème, vous pouvez utiliser la méthode ".tolist()" sur le tableau NumPy. Cette méthode convertit le tableau en une liste imbriquée, qui peut ensuite être sérialisée en JSON. Voici un exemple :

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

Pour "unjsonifier" le tableau, vous pouvez utiliser le code suivant :

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

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn