web-dev-qa-db-fra.com

python ajout au tableau dans l'objet json

J'ai l'objet json suivant en python:

jsonobj = {
          "a": {
              "b": {
                      "c": var1,
                      "d": var2,
                      "e": [],
                   },

                },
            }

Et je voudrais ajouter des éléments de valeur-clé dans "e", mais je ne peux pas en comprendre la syntaxe. J'ai essayé d'ajouter avec ce qui suit, mais il ne sort pas correctement avec les crochets et les citations:

jsobj["a"]["b"]["e"].append("'f':" + var3)

Au lieu de cela, je veux que "e" soit le suivant:

"e":[
       {"f":var3, "g":var4, "h":var5},
       {"f":var6, "g":var7, "h":var8},
    ]

Quelqu'un connaît-il la bonne façon d'ajouter à ce tableau JSON? Beaucoup d'appréciation.

22
swoosh
jsobj["a"]["b"]["e"].append({"f":var3, "g":var4, "h":var5})
jsobj["a"]["b"]["e"].append({"f":var6, "g":var7, "h":var8})
28
DrTyrsa

Ajoutez simplement le dictionnaire en tant qu'objet dictionnaire et non en tant que chaîne:

jsobj["a"]["b"]["e"].append(dict(f=var3))

Source complète:

var1 = 11
var2 = 32
jsonobj = {"a":{"b":{"c": var1,
                     "d": var2,
                     "e": [],
                    },
               },
           }
var3 = 444
jsonobj["a"]["b"]["e"].append(dict(f=var3))

jsonobj contiendra:

{'a': {'b': {'c': 11, 'd': 32, 'e': [{'f': 444}]}}}
8
PhE
jsonobj["a"]["b"]["e"] += [{'f': var3, 'g' : var4, 'h': var5}, 
                           {'f': var6, 'g' : var7, 'h': var8}]
2
katzenversteher