如何在python

时间:2018-12-30 17:46:30

标签: python python-3.x

有没有办法我可以在python中循环生成变量名并为其分配值 ?例如,如果我有

我的清单为

     [{'symbol': 'ETHBTC', 'price': '0.03675300'},
     {'symbol': 'LTCBTC', 'price': '0.00838900'},
     {'symbol': 'BNBBTC', 'price': '0.00152680'},........]

我希望变量值为

     ETHBTC.price = 0.03675300
     LTCBTC.price = 0.00838900
     BNBBTC.price = 0.00152680


     and soo on....

我已经尝试过了

但是如何将x1名称更改为etc_btc.value

for x in range(431):
    y = prices[x]
    eth_btc = Namespace(**y)
    eth_btc.price = float(eth_btc.price)
    print(eth_btc.price,eth_btc.symbol)
    x1 = eth_btc.symbol
    x1 = eth_btc.price

1 个答案:

答案 0 :(得分:0)

如前所述,动态创建变量名不是一个好主意。一种替代解决方案是创建以下价格字典:

li = [
        {'symbol': 'ETHBTC', 'price': '0.03675300'},
        {'symbol': 'LTCBTC', 'price': '0.00838900'},
        {'symbol': 'BNBBTC', 'price': '0.00152680'},
    ]

prices = {}

for entry in li:
    prices.update({entry['symbol']:entry['price']})

print(prices)

返回:

{'ETHBTC': '0.03675300', 'LTCBTC': '0.00838900', 'BNBBTC': '0.00152680'}

我借助以下问题解答SyntaxError: keyword can't be an expression while creating a dictionary

找到了您的答案