Maison  >  Article  >  développement back-end  >  Comment éviter les erreurs lors de l'accès aux données JSON à partir des dictionnaires Python

Comment éviter les erreurs lors de l'accès aux données JSON à partir des dictionnaires Python

Barbara Streisand
Barbara Streisandoriginal
2024-10-20 21:07:02430parcourir

How to Avoid Errors When Accessing JSON Data from Python Dictionaries

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!

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