Maison  >  Article  >  développement back-end  >  Lors de la conversion de dictionnaires en JSON, faites attention à ce piège courant

Lors de la conversion de dictionnaires en JSON, faites attention à ce piège courant

DDD
DDDoriginal
2024-10-20 21:02:02743parcourir

When Converting Dictionaries to JSON, Watch Out For This Common Pitfall

Pièges liés à la conversion de dictionnaires en JSON

Lorsque vous travaillez avec des données JSON, il est crucial de comprendre la distinction entre les objets JSON et les représentations sous forme de chaîne de JSON. Cette distinction affecte la façon dont nous manipulons et accédons aux données.

Dans le code fourni :

import json

r = {'is_claimed': 'True', 'rating': 3.5}
r = json.dumps(r)
file.write(str(r['rating']))

Le problème vient de l'utilisation de json.dumps() suivie d'une tentative d'accès à un clé de la chaîne résultante. json.dumps() convertit un dictionnaire en une représentation sous forme de chaîne de l'objet JSON, et non en un objet JSON lui-même. Cela signifie que nous ne pouvons pas accéder directement aux propriétés de l'objet JSON à partir de la chaîne.

Pour résoudre ce problème, nous devons utiliser json.loads() pour reconvertir la chaîne en un objet JSON. Cela nous permet d'accéder aux propriétés de l'objet JSON en utilisant la notation par points ou des paires clé-valeur.

<code class="python">import json

r = {'is_claimed': 'True', 'rating': 3.5}
r = json.dumps(r)  # Converts to a JSON string
loaded_r = json.loads(r)  # Converts back to a JSON object
print(loaded_r['rating'])  # Accesses the 'rating' property</code>

Dans ce code révisé, nous convertissons d'abord le dictionnaire en chaîne à l'aide de json.dumps(). Ensuite, nous utilisons json.loads() pour reconvertir la chaîne en un objet JSON. Nous pouvons désormais accéder à la propriété « rating » en utilisant la notation par points familière.

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