Python3中如何为列表内的字典添加指定键值对?
给enquiry_metadata的items列表中每个字典添加指定键值对
原始数据:
enquiry_metadata = {'enquiry_id': '02e19c4e21d2', 'items': [{'status': 'SUCCESS', 'code': 0, 'panelId': '0a1702be81bf', 'data': {'customerId': 19373, 'appId': 30531, 'zip': 80124, 'service_id': 979869}}, {'status': 'SUCCESS', 'code': 0, 'panelId': '6e638d5fbb', 'data': {'customerId': 30743, 'appId': 51808, 'zip': 32425, 'service_id': 879463}}]}
需求:给enquiry_metadata['items']列表中的每一个字典添加键值对"companyId":"8424",得到目标结构。
方法一:直接修改原列表(高效推荐)
循环遍历items列表中的每个字典,直接添加键值对:
for item in enquiry_metadata['items']: item['companyId'] = '8424'
运行后,enquiry_metadata会变为目标结果:
enquiry_metadata = {'enquiry_id': '02e19c4e21d2', 'items': [{'status': 'SUCCESS', 'code': 0, 'panelId': '0a1702be81bf', 'data': {'customerId': 19373, 'appId': 30531, 'zip': 80124, 'service_id': 979869}, 'companyId': '8424'}, {'status': 'SUCCESS', 'code': 0, 'panelId': '6e638d5fbb', 'data': {'customerId': 30743, 'appId': 51808, 'zip': 32425, 'service_id': 879463}, 'companyId': '8424'}]}
方法二:生成新列表(保留原始数据)
如果需要保留原始数据不被修改,可通过列表推导式创建包含新键值对的字典列表,再替换原items:
new_items = [dict(item, companyId='8424') for item in enquiry_metadata['items']] enquiry_metadata['items'] = new_items
该方式会创建新的字典对象,原列表中的字典不会被改动。
内容的提问来源于stack exchange,提问作者1ksj8jdnu36flksf
相关产品推荐
相关产品推荐

