在Python2.7中向JSON添加值

时间:2016-10-08 22:23:51

标签: python json python-2.7

我的任务是将来自两个不同来源的数据合并到一个JSON中,供Web服务使用。我决定使用烧瓶,我发现它很容易使用。 无论如何,我正在检索看起来像这样的JSON(通过urlib2)....

[
    [{
        "timestamp": 1474088400000,
        "errors": 1018831,
        "errorTotal": 72400021,
        "errorTotal2": 0.013022892930509898,
        "business": 4814994,
        "breakdown": [{
            "type": "type1",
            "count": 603437
        }, {
            "type": "type2",
            "count": 256187
        }]
    }]
]

我要做的就是在“细分”下添加一个新的密钥对,特别是“type3”,所以JSON对象看起来像这样......

[
    [{
        "timestamp": 1474088400000,
        "errors": 1018831,
        "errorTotal": 72400021,
        "errorTotal2": 0.013022892930509898,
        "business": 4814994,
        "breakdown": [{
            "type": "type1",
            "count": 603437
        }, {
            "type": "type2",
            "count": 256187
        }, {
            "type": "type3",
            "count": 4533
        }]
    }]
]

我认为将其视为列表中的密钥对将是可行的方法,但它似乎并不起作用。谁能指出我正确的方向? 非常感谢提前!

2 个答案:

答案 0 :(得分:0)

首先,您应该将json读入Python对象:

str_replace

然后到达要修改的对象。数据看起来像data = json.loads(jsonstring) ,因此它是字典列表的列表。我猜你想要所有这些:

[ [ {... 'breakdown': ...} ] ]

然后将其转换回json:

for d in data:
    for dd in d:
        d['breakdown'].append({"type": "type3", "count": 4533})

答案 1 :(得分:0)

  1. 加载json字符串

    json_data = json.loads(json_string)
    
  2. 迭代对象,append"breakdown"

    for item in json_data:
        for json_dict in item:
            json_dict["breakdown"].append({"type": "type3", "count": 4533})
    
  3. 将其转换回JSON字符串

    json_string = json.dumps(json_data)