import ccxt
import time
import re
exchanges = {'mercado', 'bitfinex', 'quadrigacx','binance'}
limit = 10
def get_order_book(key,symbol):
exchange = eval('ccxt.' + key + '()' )
orderbook = exchange.fetch_order_book(symbol,limit)
print (list(orderbook.keys()))
bid = orderbook['bids']
print (bid)
get_order_book('bitfinex', 'BTC/USD')
>>['bids', 'asks', 'timestamp', 'datetime', 'nonce']
[[6603.6, 0.02189108], [6603.1, 0.15613008], [6602.7, 1.508], [6602.0, 0.05], [6601.3, 1.0], [6601.0, 0.00499], [6600.5, 0.63660326], [6600.3, 1.5094], [6600.0, 9.0], [6598.1, 0.18676835]]
函数bids
返回一个列表,其中包含每个索引的两个值,第一个是price
,第二个是amount
。
可以将此列表分成两个列表,一个包含price
,另一个包含amount
?
或将其放入嵌套的dict键中,供我以后使用?
它不会返回列表,而是将列表中每个索引的两个值分配给嵌套的字典
与第一个号码的new_orderbook['bids']['price']
类似
new_orderbook['bids']['amount']
为第二个数字
答案 0 :(得分:0)
@ekhumoro是正确的。
您可以通过传递zip()
所包含的迭代器(在其之前带有*
运算符)来解压缩这些对。
>>> bid
[[4030.1, 0.17328499], [4030.0, 0.73859736], [4029.7, 1.921567], [4027.9, 0.31081552], [4027.3, 0.05842284], [4027.2, 1.26534116], [4027.0, 0.19425388], [4026.9, 0.04], [4026.7, 0.0133796], [4026.3, 0.93483375]]
>>> prices, amounts = zip(*bid)
>>> list(prices)
[4030.1, 4030.0, 4029.7, 4027.9, 4027.3, 4027.2, 4027.0, 4026.9, 4026.7, 4026.3]
>>> list(amounts)
[0.17328499, 0.73859736, 1.921567, 0.31081552, 0.05842284, 1.26534116, 0.19425388, 0.04, 0.0133796, 0.93483375]