python - Robot Framework:将字典的值与字典列表中的匹配项合并和求和
问题描述
抓取Web 表后,我将每行的所有值存储为字典,然后将所有字典附加到列表中。这样做时,我得到以下字典(样本),它可以具有相同的键值对,例如:store
123
&789
存在于 2 个字典中:
${data} = [{store: 123, prov: 'ON' value: 10},{store: 456, prov: 'AB' value: 5},{store: 123, prov: 'ON' value: 4},{store: 789, prov: 'MB' value: 3},{store: 789, prov: 'MB' value: 7}]
我如何合并和汇总value
所有这些字典项,以便仅获得独特的元素,例如:
${data} = [{store: 123, prov: 'ON' value: 14},{store: 456, prov: 'AB' value: 5},{store: 789, prov: 'MB' value: 10}]
也可以使用 python 提供解决方案。
注意:我找到了一些 python 解决方案,但它们仅在每个字典存储为单独的变量时才有效 Merge and sum of two dictionary
解决方案
您的意思是您不想存储在新字典中并像这样打印吗?
data = [{'store': 123, 'value': 10},{'store': 456, 'value': 5},{'store': 123, 'value':
4},{'store': 789, 'value': 3},{'store': 789, 'value': 7}]
Dict = {}
for x in data:
if x['store'] in Dict:
Dict[x['store']] += x['value']
else:
Dict[x['store']] = x['value']
print([{'store':x,'value':y} for x,y in Dict.items()])
推荐阅读
- sql-server - SQL Server 中的周数
- java - java - 如何在Java Map中存储多个键值对,因为“put()”会覆盖以前的数据
- html - 如何将一些容器彼此相邻放置?HTML/CSS
- python - 如何使用 Selenium 验证表格元素并单击其他元素
- android - 渐变不平滑
- alfresco - Alfresco Share:下载时缺少文件扩展名
- node.js - 术语“node.exe”未被识别为 cmdlet、函数、脚本文件或可运行程序的名称
- python - 深入了解python中的数组函数
- angular - Ngrx/effects:如何在通过 http 更新之前显示一个对话框
- npm - NPM office-to-pdf 使用 MeteorJS