Comment sérialiser les tableaux NumPy pour les variables de contexte Django ?

DDD
Libérer: 2024-11-04 01:38:02
original
571 Les gens l'ont consulté

How to Serialize NumPy Arrays for Django Context Variables?

Erreur de sérialisation JSON du tableau NumPy

Lors de la tentative d'enregistrement d'un tableau NumPy en tant que variable de contexte Django, un message d'erreur peut indiquer que le tableau n'est pas JSON sérialisable.

Explication :

JSON, un format de données pour les applications Web, nécessite que les données soient dans une structure spécifique pour une transmission efficace. Les tableaux NumPy, en revanche, ne sont pas intrinsèquement compatibles avec le format JSON, d'où l'erreur.

Solution :

Pour résoudre ce problème et réussir à sérialiser le tableau , convertissez-le dans un format compatible JSON avant de l'enregistrer en tant que variable contextuelle. La méthode ".tolist()" des tableaux NumPy apporte une solution simple :

<code class="python">import numpy as np

a = np.arange(10).reshape(2,5)
b = a.tolist()  # Convert NumPy array to nested lists</code>
Copier après la connexion

Maintenant, la variable b contient les mêmes données dans un format compatible avec la sérialisation JSON. Vous pouvez l'enregistrer en tant que variable de contexte Django sans rencontrer l'erreur de sérialisation.

Notes supplémentaires :

Pour désérialiser la chaîne JSON dans un tableau NumPy, utilisez ce qui suit étapes :

  1. Lire le fichier JSON :

    <code class="python">obj_text = codecs.open(file_path, 'r', encoding='utf-8').read()</code>
    Copier après la connexion
  2. Charger la chaîne JSON :

    <code class="python">b_new = json.loads(obj_text)</code>
    Copier après la connexion
  3. Convertissez la liste en tableau NumPy :

    <code class="python">a_new = np.array(b_new)</code>
    Copier après la connexion

Avec ces étapes, vous pouvez efficacement sérialiser et désérialiser les tableaux NumPy pour stocker et récupérer des données dans les applications Django.

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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal