键为数组时更新python字典

2024-09-30 06:13:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经看过这篇文章Add key to a dictionary in Python,但我现在运行的是一个典型的场景,其中key是一个数组,我想向该数组添加新值。这是我现在的状况。在

我正在读取一个包含json字符串的数据库列,我必须修改该字符串(向该字符串添加一些附加值并保持json格式),并用更新后的json字符串更新该列。Json结构如下所示

{
"tenantCreationDate": 1476869059806,
"rdVersion": "2016a06.01",
"products": [{
    "productName": "Core",
    "currentVerison": "2016a06.01",
    "versionHistory": [{
        "startDate": 1476869059829,
        "upgradedBy": "squire",
        "version": "2016a06.01",
        "endDate": null
    }]
}, {
    "productName": "Capture",
    "currentVerison": "2016a06.01",
    "versionHistory": [{
        "startDate": 1476869059829,
        "upgradedBy": "squire",
        "version": "2016a06.01",
        "endDate": null
    }]
}, {
    "productName": "Vault",
    "currentVerison": "2016a06.01",
    "versionHistory": [{
        "startDate": 1476869059829,
        "upgradedBy": "squire",
        "version": "2016a06.01",
        "endDate": null
    }]
}, {
    "productName": "LVA",
    "currentVerison": "2016a06.01",
    "versionHistory": [{
        "startDate": 1476869059829,
        "upgradedBy": "squire",
        "version": "2016a06.01",
        "endDate": null
    }]
}, {
    "productName": "Correspondence",
    "currentVerison": "2016a06.01",
    "versionHistory": [{
        "startDate": 1476869059829,
        "upgradedBy": "squire",
        "version": "2016a06.01",
        "endDate": null
    }]
}]

}

如您所见products是一个数组,在这个数组下versionHistory是另一个数组,我想将另一个版本添加到该数组并将其发布到数据库。所以我首先要做的是从db读取列并转换成json

^{pr2}$

现在我的问题是如何向数组中添加另一个版本,并将更新后的数据提交到数据库列中,假设在更新后版本历史应该是这样的--

"versionHistory": [{
        "startDate": 1476869059829,
        "upgradedBy": "squire",
        "version": "2016a06.01",
        "endDate": null
    },
    {
        "startDate": 12345678,
        "upgradedBy": "admin",
        "version": "2016.07.02",
        "endDate": 123456
    }
    ]

你的帮助将不胜感激。在


Tags: key字符串版本数据库jsonversion数组null
1条回答
网友
1楼 · 发布于 2024-09-30 06:13:56

你可以尝试一下:

for obj in metadata["products"]:
    if obj["productName"]==nameToLookFor:
        obj["versionHistory"].append(newObject)

这将使用您在nameTookFor中指定的名称将版本添加到产品中

相关问题 更多 >

    热门问题