首页 > 解决方案 > 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

标签: pythonpython-3.xlistdictionaryrobotframework

解决方案


您的意思是您不想存储在新字典中并像这样打印吗?

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()])

推荐阅读