Je suis nouveau sur Python et je joue avec des données JSON. Je voudrais construire dynamiquement un objet JSON en ajoutant une valeur-clé à un objet JSON existant.
J'ai essayé ce qui suit mais j'obtiens TypeError: 'str' object does not support item assignment
:
import json
json_data = json.dumps({})
json_data["key"] = "value"
print 'JSON: ', json_data
json_data['key'] = 'value'
, ce qui ne fonctionnera pas car cejson_data
n'est pas un dictionnaire Python.pip list
vous donne les mêmes informations et peut produire du JSON:pip list --format=json
Vous pouvez créer le dictionnaire Python et le sérialiser en JSON sur une seule ligne et ce n'est même pas moche.
la source
Il existe déjà une solution qui permet de construire un dictionnaire (ou un dictionnaire imbriqué pour des données plus complexes), mais si vous souhaitez construire un objet, essayez peut-être 'ObjDict'. Cela donne beaucoup plus de contrôle sur le json à créer, par exemple en conservant l'ordre, et permet de construire comme un objet qui peut être une représentation préférée de votre concept.
pip installe objdict en premier.
la source
json.dumps
c'est-àjson.dumps(response, sort_keys=True, indent=4)
- dire que vous êtes bloqué par ordre alphabétique et non par votre ordre, groupe et représentation préférésVous pouvez utiliser la
EasyDict
bibliothèque ( doc ) :[ Installation ]:
pip install easydict
la source
Toutes les réponses précédentes sont correctes, voici un moyen de plus et facile de le faire. Par exemple, créez une structure de données Dict pour sérialiser et désérialiser un objet
( Remarquez que None est Null en python et je l'utilise intentionnellement pour montrer comment vous pouvez stocker null et le convertir en json null)
la source