{
"abc": null,
"def": 9
}
J'ai des données JSON qui ressemblent à ceci. Sinon pour null (sans guillemets sous forme de chaîne), j'aurais pu utiliser ast
module's literal_eval
pour convertir ce qui précède en dictionnaire.
Un dictionnaire en Python ne peut pas avoir null
comme valeur mais peut avoir "null"
comme valeur. Comment puis-je convertir ce qui précède en un dictionnaire que Python reconnaît?
Vous devez utiliser le module intégré json
, qui a été conçu explicitement pour cette tâche:
>>> import json
>>> data = '''
... {
... "abc": null,
... "def": 9
... }
... '''
>>> json.loads(data)
{'def': 9, 'abc': None}
>>> type(json.loads(data))
<class 'dict'>
>>>
Soit dit en passant, vous devez utiliser cette méthode même si vos données JSON ne contiennent aucune valeur null
. Bien que cela puisse fonctionner (parfois), ast.literal_eval
a été conçu pour évaluer le code Python représenté sous forme de chaîne. Ce n'est tout simplement pas le bon outil pour travailler avec des données JSON.
Une solution consiste à utiliser une variable qui contient None.
import json
null = None
data = { "test": null }
json.dumps(data)