我需要用多线程处理 API 调用的结果填充列表



所以我一直在尝试许多不同的方法,但我无法绕过它

  • API函数调用返回列表中的Dict
  • 我有一个需要逐一传递给上面函数的参数列表
  • 我不在乎秩序
  • 最后一步是将该列表附加到Pandas.DataFrame中,它将删除重复项和顺序等。示例(顺便说一下,API是Python-Financial(:
symbols = ['ADAUSDT', 'ETHUSDT', 'BTCUSDT']
orders = pd.DataFrame()
for s in symbols:
orders = orders.append(client.get_all_orders(symbol=s)) # This returns the Dict

我试着使用Queue((和Thread((,两者都与Lock((配合使用。我也尝试过ThreadPoolExecutor((,但无法使其工作。我达到的最远的方法是使用最后一种方法,但每次执行后不同的行数:

orders = pd.DataFrame()
temp = []
with ThreadPoolExecutor() as executor:
executor.map(get_orders, symbols)
for x in temp:
orders = orders.append([x])

有什么想法吗?

感谢

在场边,单独使用orders.append([x])

这可以帮助你

from binance import Client
client = Client(api_key, api_secret)
symbols = ['ADAUSDT', 'ETHUSDT', 'BTCUSDT']
orders_symbol =[]
orders = {}
for s in symbols:
orders.setdefault(s,{})
orders_symbol = client.get_all_orders(symbol=s)
for i in orders_symbol:
orders[s][i['orderId']] = i
print (s,i['orderId'],orders[s][i['orderId']])
print ()

最新更新