2017-02-13 3 views
1

Я пытаюсь создать словари, которые будут заказаны для портфеля фондов. Словари будут экспортироваться в виде файлов JSON, чтобы дать немного контекста. Вот как выглядят словари.Создание словарей Python на основе условия

{ 
"accountID":"02e57c7d-d071-4c63-b491-1194a9939ea5.1452548617456", 
"accountNo":"DWTE000005", 
"userID":"02e57c7d-d071-4c63-b491-1194a9939ea5", 
"accountType":2, 
"ordType":"1", 
"side":"B", 
"instrumentID":"06926627-e950-48f3-9c53-b679f61120ec", 
"orderQty":1.4312, 
"comment":"" 
} 

Условие, согласно которому словари будут созданы после того, как целевые весы превышают 0, следующим образом.

targetportfolio = { 
'VXUS' : 0.2, 
'GOVT' : 0, 
'IVW' : 0.2, 
'EEM' : 0.2, 
'JNK' : 0, 
'VDE' : 0.15, 
'LQD' : 0, 
'IJR' : 0.1, 
'BIL' : 0, 
'AAXJ' : 0.15 
} 

Где каждый фонд (например, VXUS) будет иметь порядок генерируется, если сумма целевого портфеля Словаря больше 0. Я думал что-то вдоль линий коды ниже, но я вполне смущенный. Есть идеи?

def ordergen(portfolio): 
    for i in portfolio: 
    { 
    "accountID" : "02e57c7d-d071-4c63-b491-1194a9939ea5.1452548617456", 
    "accountNo" : "DWTE000005", 
    "userID" : "02e57c7d-d071-4c63-b491-1194a9939ea5", 
    "accountType" : 2, 
    "ordType" : "1", 
    "side" : "B", 
    "instrumentID" :fundID[i], 
    "orderQty" : , 
    "comment":"" 
    } 

ответ

0
targetPortfolio = { 
'VXUS' : 0.2, 
'GOVT' : 0, 
'IVW' : 0.2, 
'EEM' : 0.2, 
'JNK' : 0, 
'VDE' : 0.15, 
'LQD' : 0, 
'IJR' : 0.1, 
'BIL' : 0, 
'AAXJ' : 0.15 
} 

orders = [] 

for k in targetPortfolio.keys(): 
    if targetPortfolio[k] > 0: 
     orders.append({ 
      "accountID" : "02e57c7d-d071-4c63-b491-1194a9939ea5.1452548617456", 
      "accountNo" : "DWTE000005", 
      "userID" : "02e57c7d-d071-4c63-b491-1194a9939ea5", 
      "accountType" : 2, 
      "ordType" : "1", 
      "side" : "B", 
      "instrumentID" : "", 
      "orderQty" : "", 
      "comment":"" 
     }) 

print(orders) 

.keys() является вашим другом. Теперь вы можете использовать 'k', чтобы заполнить ваши данные заказа при условии, что их вес превышает 0.

+0

Удивительный, спасибо большое. Я также импортирую другие словари из других скриптов, и я думаю, что просто используя образец [k] в словаре после того, как order.append работает. –

+0

Отметьте его как правильный ответ. Мне нужны мои интернет-очки! – Patrick

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

  • Нет связанных вопросов^_^