web-dev-qa-db-fra.com

Comment convertir des données JSON avec une valeur nulle en dictionnaire

{
  "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?

22
user2921139

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.

37
iCodez

Une solution consiste à utiliser une variable qui contient None.

import json
null = None
data = { "test": null }
json.dumps(data)
2
avimimoun