假设输入是一个字典列表。我需要用新值更新特定字段。输入中有重复的键、值,因此无法区分需要按名称选取的字段。下面是一个例子:
test = [
{
"key": "prog",
"value": {
"instance[]": [
{
"key": "name",
"value": {
"string": "NAME"
},
"verif": 22222222
},
{
"key": "user",
"value": {
"string": "AAAAA"
},
"verif": 22222222
}
]
},
"verif": 22222222
},
{
"key": "sytem_platform",
"value": {
"bool": "false"
},
"verif": 22222222
},
{
"key": "system_beh",
"value": {
"bool": "true"
},
"verif": 22222222
},
{
"key": "check_beh",
"value": {
"bool": "true"
},
"verif": 22222222
},
{
"key": "order",
"value": {
"instance[]": [
{
"key": "order_det",
"value": {
"instance[]": [
{
"key": "requires",
"value": {
"string[]": []
},
"verif": 22222222
},
{
"key": "status",
"value": {
"string[]": []
},
"verif": 22222222
},
{
"key": "system_status",
"value": {
"string[]": [
"sys1.out",
"sys1.checking"
]
},
"verif": 22222222
},
{
"key": "weather_status",
"value": {
"instance[]": [
{
"key": "humdiity",
"value": {
"double": 5.0
},
"verif": 22222222
},
{
"key": "temp",
"value": {
"double": 70.0
},
"verif": 22222222
}
]
},
"verif": 22222222
},
{
"key": "environment",
"value": {
"string[]": []
},
"verif": 22222222
}
]
},
"verif": 22222222
}
]
},
"verif": 22222222
}
]
我试图更新它的以下部分,如添加“aaaa”和“bbb”
"instance[]": [
{
"key": "requires",
"value": {
"string[]": ["aaaa", "bbb"]
},
我想知道在python中是否有任何内置的库可以用于此目标?
我可以过滤掉它并将其存储在下面的列表中,但我不确定如何更新它。
newl = [d for d in test if d["key"] == "order" ]
print(newl)
#which prints
[{'key': 'order', 'value': {'instance[]': [{'key': 'order_det', 'value': {'instance[]': [{'key': 'requires', 'value': {'string[]': []}, 'verif': 22222222}, {'key': 'status', 'value': {'string[]': []}, 'verif': 22222222}, {'key': 'system_status', 'value': {'string[]': ['sys1.out', 'sys1.checking']}, 'verif': 22222222}, {'key': 'weather_status', 'value': {'instance[]': [{'key': 'humdiity', 'value': {'double': 5.0}, 'verif': 22222222}, {'key': 'temp', 'value': {'double': 70.0}, 'verif': 22222222}]}, 'verif': 22222222}, {'key': 'environment', 'value': {'string[]': []}, 'verif': 22222222}]}, 'verif': 22222222}]}, 'verif': 22222222}]
1条答案
按热度按时间0tdrvxhp1#
您可以使用递归来查找具有指定键的dict。