蟒蛇关键值的两个字典匹配

问题描述:

我tyring通过循环在他们-与希望if i in line_aum['id_class'] == line_investor['id_class']成为True两个sperate键两种类型的字典的值相匹配,那么接下来的总和dunction将工作:蟒蛇关键值的两个字典匹配

芹苴它踢出来一个不同的结果

到目前为止我有:

for line_aum in aum_obj: 
    for line_investor in investor_obj: 
     if i in line_aum['id_class'] == line_investor['id_class']: 
      total = (sum,line_investor['amount'], line_aum['value']) 
      amount = line['id_class'] 
      print(amount,total) 

实施例的数据:

{'fund_name': '', 'fund_code': 'LFE', 'aumc': '406.37', 'value': '500', 'ddate': '2013-01-01', 'id_fund': '165', 'currency': 'EUR', 'nav': '24.02', 'shares': '16.918', 'estimate': '0', 'id_class': '4526', 'class_name': 'LTD - CLASS B (EUR)'} 
+1

凡'i'定义? – Kevin 2013-05-01 17:20:13

+0

line_aum ['id_class']是如此非python。哟应该使用line_aum.get(“id_class”,Default_Value_You_Want_to返回) – 2013-05-01 17:22:10

+1

你的'if'表达式使* no *有意义。 '我在foo == bar'是一个链接的运算符,所以这被解释为'我在foo和foo == bar'这不是你想要的,我会说。此外,'line_aum'和'line_investor'是*键*,它们是什么类型,你可以把它们当作字典? – 2013-05-01 17:22:17

使用itertools.product代替嵌套循环如果两个aum_objinvestor_obj的列表:

from itertools import product 

for line_aum, line_investor in product(aum_obj, investor_obj): 
    if line_aum['id_class'] == line_investor['id_class']: 
     # `line_aum` and `line_investor` have matching values for the `id_class` keys. 
+1

{'fund_name':'','fund_code':'LFE','aumc':'406.37','value':'500','ddate':'2013-01-01','id_fund':' 165'''currency':'EUR','nav':'24.02','shares':'16.918','estimate':'0','id_class':'4526','class_name':'LTD - CLASS B(EUR)'} – VivaNosh 2013-05-01 17:40:12

+0

Martin--这是一些示例数据。它的JSON来自一个API,所以.values()吐出一个属性错误。 – VivaNosh 2013-05-01 17:41:16

+0

@VivaNosh:然后'aum_obj'或'investor_obj'都不是*字典。 – 2013-05-01 17:42:16