python匹配字典里A键值对的值,并修改该字典B键值对的值

现有一个数据为字典的列表,举例如下:

 [{
        "id": 1372,
        "part": 24,
      },
      {
        "id": 1357,
        "part": 9,
      },
      {
        "id": 1334,
        "part": 12,
      }
]

需求,根据指定id(例如id = 1357),匹配到上面列表里对应的字典,并修改该字典的"part"数据。
希望有完整代码,谢谢。


#!/usr/bin/python
# -*- coding: UTF-8 -*-
"""
@author: Roc-xb
"""


def update(key, value, items):
    for item in items:
        if item['id'] == key:
            item['part'] = value


if __name__ == '__main__':
    items = [{
        "id": 1372,
        "part": 24,
    },
        {
            "id": 1357,
            "part": 9,
        },
        {
            "id": 1334,
            "part": 12,
        }
    ]
    print("修改前:",items)
    update(1357, 22, items)
    print("修改后:",items)

img


def alter_part_by_id(data, id, alter_part):
    '''
    :param data: 原始数据
    :param id: 需要更改的id
    :param alter_part: 需要修改的目标part值
    :return:
    '''
    return [{"id": i['id'], "part": alter_part} if i['id'] == id else i for i in data]


if __name__ == '__main__':
    data = [{
        "id": 1372,
        "part": 24,
    },
        {
            "id": 1357,
            "part": 9,
        },
        {
            "id": 1334,
            "part": 12,
        }
    ]
    # 将1357对应的part修改为20000
    data = alter_part_by_id(data, 1357, 20000)

img

https://jingyan.baidu.com/article/335530da54946f58ca41c34b.html