Encodage/décodage JSON avec Python
Pour un échange et un stockage de données transparents, la conversion des dictionnaires Python en JSON (JavaScript Object Notation) est une pratique courante exigence. Cependant, des erreurs inattendues peuvent survenir lors de la tentative d'accès aux données JSON à partir d'un dictionnaire.
Erreur rencontrée :
Considérez l'extrait de code suivant :
<code class="python">r = {'is_claimed': 'True', 'rating': 3.5} r = json.dumps(r) file.write(str(r['rating']))</code>
Lors de la tentative d'accès à la clé « rating » à partir de la chaîne JSON, une erreur « TypeError : les indices de chaîne doivent être des entiers, pas des str » se produit. Cette erreur se produit car json.dumps() convertit le dictionnaire « r » en chaîne, et non en un véritable objet ou dictionnaire JSON.
Approche correcte :
Pour résoudre Pour résoudre ce problème, utilisez la méthode json.loads() pour recharger la chaîne JSON dans un dictionnaire. Cela vous permet d'accéder à la clé 'rating' comme suit :
<code class="python">import json r = {'is_claimed': 'True', 'rating': 3.5} r = json.dumps(r) loaded_r = json.loads(r) print(loaded_r['rating'])</code>
Comprendre la distinction :
json.dumps() enregistre un dictionnaire sous forme de chaîne, tandis que json.loads() le récupère sous forme de dictionnaire. N'oubliez pas d'utiliser json.dumps() lors de la sérialisation des données et json.loads() lors de leur désérialisation.
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!