2013-05-01 2 views
-2

Я Tyring соответствовать значению два dicts двух Sperate ключей, обернув над ними-с, надеюсь if i in line_aum['id_class'] == line_investor['id_class'] становится True, то следующая сумма 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

+0

line_aum ['id_class'] - это не питон. Yo должен использовать line_aum.get ("id_class", Default_Value_You_Want_to return) –

+1

Ваше выражение 'if' делает * no * смысл. 'i в foo == bar' является цепным оператором, поэтому интерпретируется как' i в foo и foo == bar', который не то, что вы хотели, я бы сказал. Кроме того, 'line_aum' и' line_investor' являются * ключами *, какой тип они могут обрабатывать как словари? –

ответ

2

Использование itertools.product вместо вложенных циклов, если оба aum_obj и investor_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 ',' оценка ':' 0 ',' id_class ':' 4526 ',' class_name ':' LTD - CLASS B (EUR) '} – VivaNosh

+0

Martin - вот несколько примеров данных. его json из api, поэтому .values ​​() выплескивает ошибку атрибута. – VivaNosh

+0

@VivaNosh: Тогда либо 'aum_obj', либо' investor_obj' являются * не * словарями. –

Смежные вопросы