【问题标题】:python append to array in json objectpython追加到json对象中的数组
【发布时间】:2012-06-09 08:04:11
【问题描述】:

我在 python 中有以下 json 对象:

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

                },
            }

我想将键值元素附加到“e”中,但无法弄清楚它的语法。我尝试附加以下内容,但括号和引号不正确:

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

相反,我希望“e”如下:

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

有人知道追加到这个 json 数组的正确方法吗?非常感谢。

【问题讨论】:

  • 从技术上讲,这不是一个 JSON 对象(即使它是以 JSON 样式格式化的),它是一个 python 字典。这不是“用括号和引号直接出现”,因为您是 append()将字符串添加到字典值 []

标签: python arrays json append


【解决方案1】:

只需将字典添加为字典对象而不是字符串:

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

完整来源:

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

jsonobj 将包含:

{'a': {'b': {'c': 11, 'd': 32, 'e': [{'f': 444}]}}}

【讨论】:

    【解决方案2】:
    jsobj["a"]["b"]["e"].append({"f":var3, "g":var4, "h":var5})
    jsobj["a"]["b"]["e"].append({"f":var6, "g":var7, "h":var8})
    

    【讨论】:

      【解决方案3】:
      jsonobj["a"]["b"]["e"] += [{'f': var3, 'g' : var4, 'h': var5}, 
                                 {'f': var6, 'g' : var7, 'h': var8}]
      

      【讨论】:

      猜你喜欢
      • 2020-07-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-10-03
      • 2021-09-09
      • 1970-01-01
      • 2015-02-21
      相关资源
      最近更新 更多