JSON est très similaire à la syntaxe Python. Tous les objets JSON peuvent-ils se convertir directement en Python sans erreur?
Exemple
Voici un objet JSON valide:
// Valid JSON {"foo":"bar"}
Cet objet se traduira directement en un dictionnaire Python avec la touche "foo" et la valeur "bar":
# Python json_dict = eval('{"foo":"bar"}')
Non. En particulier, true
, false
et null
ne sont pas Python, bien qu'ils aient des équivalents directs dans Python ( True
, False
et None
respectivement).
// Valid JSON {"sky_is_blue":true}
Mais lorsqu'il est utilisé dans Python …
# Python >>> json_dict = eval('{"sky_is_blue":true}') Traceback (most recent call last): File "<stdin>", line 1, in <module> File "<string>", line 1, in <module> NameError: name 'true' is not defined
Cette question a déjà été répondu (et la réponse a accepté), mais j'aimerais souligner que le problème de true
, false
et null
ne pas être Python peut être surmonté en utilisant le code suivant avant d'évaluer JSON:
true = True false = False null = None
Bien sûr, un analyseur JSON est encore meilleur.