有没有办法我可以在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
答案 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
找到了您的答案