根据条件创建Python字典

时间:2017-02-13 03:19:32

标签: python dictionary

我正在尝试创建字典,这些字典将是对资金组合的订单请求。字典将作为JSON文件导出,只是为了给出一些上下文。这就是词典的样子。

$this->visit('/login')
    ->type($this->User->email, 'email')
    ->type('secret', 'password')
    ->press('Login')
    ->see('Searches')
    ->type('queensbury ny','address')
    ->type('100','distance')
    ->wait(20)
    ->press('Search by City')
    ->see('Glens Falls #81')

如果目标权重高于0,将创建字典的条件如下。

{
"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,那么每个基金(例如VXUS)都会生成订单。我正在考虑下面代码的内容,但我很困惑。有什么想法吗?

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
}

1 个答案:

答案 0 :(得分: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()是你的朋友。您现在可以使用''在重量超过0的条件下填写您的订单详情。