我有如下数据
{'exchange1': [{'price': 9656.04, 'side': 'bid', 'size': 0.16, 'timestamp': 1589504786},
{'price': 9653.97, 'side': 'ask', 'size': 0.021, 'timestamp': 1589504786}],
'exchange2': [{'price': 9755.3, 'side': 'bid', 'size': 27.0, 'timestamp': 1589504799},
{'price': 9728.0, 'side': 'bid', 'size': 1.0, 'timestamp': 1589504799}]}
我想遍历每个交易所,然后遍历所有价格,然后根据side
键进行更改。如果side : bid
我想将price
乘以一个数字(例如:0.99),而如果side : ask
我想将价格乘以另一个数字(例如:1.01)。
我不确定如何在包含边和价格数据的字典列表上进行迭代。
谢谢您的帮助。
您可以在此处使用dict
来保存价格乘数,并使用嵌套的for循环遍历所有订单。
exchanges = {
'exchange1': [{'price': 9656.04, 'side': 'bid', 'size': 0.16, 'timestamp': 1589504786},
{'price': 9653.97, 'side': 'ask', 'size': 0.021, 'timestamp': 1589504786}],
'exchange2': [{'price': 9755.3, 'side': 'bid', 'size': 27.0, 'timestamp': 1589504799},
{'price': 9728.0, 'side': 'bid', 'size': 1.0, 'timestamp': 1589504799}]
}
price_multipliers = {
'bid': 0.99,
'ask': 1.01
}
for orders in exchanges.values():
for order in orders:
order["price"] *= price_multipliers[order["side"]]
理解的方式是:
{k: [
{**order, 'price': (
order['price'] * 0.99
if order['side'] == 'ask'
else order['price'] * 1.01
)}
for order in exchange
] for k, exchange in exchanges.items()}