Python复制带有条件的子列表


list_0 = []
list_1 = []

def sort_data():
trades = client.get_recent_trades(symbol='BTCUSDT', limit=50)
for t in trades:
id_zero = [int(t["id"]), int(t["isBuyerMaker"]), float(t["quoteQty"]).__round__(2)]
list_0.append(id_zero)
dup = [x[0] for x in list_0]
for x in dup:
if x not in list_1:
?

while True:
sort_data()

我连接到Binance的API,我想检查最近的交易。到目前为止,一切顺利,我可以用client.get_recent_trades

得到它们我必须一次下载50个交易,否则它会太慢,我将失去大部分交易。我可以在特定的id上看到它。

例如,ID: 560, 565, 576, 587, ...对我来说是无用的,我失去了其他的。

在每个数据包中只有少量的"新鲜"数据。的人。我不想在我的列表中添加重复项,所以我尝试检查id以使用

过滤掉重复项。
dup = [x[0] for x in list_0]
Example sublist: [234543234, 1, 4543.45]

我不知道如何做以下工作:检查list_0中每个条目的ID (ID在子列表中的索引0上),当ID不在list_1时,将整个数据集/子列表[ID, isBuyerMaker, quoteQty]复制到list_1

当它是"static"例程,我知道该怎么做,但这里我有一个每秒都有新数据的例程,我不知道如何处理它。我不能用迭代[-1]来做,因为它太慢了。

在这种情况下不要使用,使用websocket:

from binance.websockets import BinanceSocketManager
from binance.client import Client
client = Client('PUBLIC', 'PRIVATE')
lst = []
def process_message(msg):
lst.append(msg)
print (lst)
bm = BinanceSocketManager(client)
conn_key = bm.start_trade_socket('BNBBTC', process_message)
bm.start()

列表lst将只包含您的符号的唯一最近交易。将该列表写入一个文件并加载到make orders脚本中。

最新更新