将收到的KuCoin Websocket的蜡烛棒消息保存到变量中,然后保存到数据库中



我有这个代码连接到KuCoin web套接字并接收蜡烛棒数据。我的问题是:如何将消息保存到变量(可能在另一个脚本中)?我想在之后使用这些数据并将其保存到数据库中,然后使用它进行计算和绘图。

import asyncio
from kucoin.client import WsToken
from kucoin.ws_client import KucoinWsClient

async def kline_msg(msg):
if msg["topic"] == "/market/candles:SLP-USDT_30min":
print(msg["data"])

async def wsocket():
client = WsToken()
ws_client = await KucoinWsClient.create(None, client, kline_msg, private=False)
await ws_client.subscribe("/market/candles:SLP-USDT_30min")
while True:
print("Sleep until message")
await asyncio.sleep(60)

if __name__ == "__main__":
loop = asyncio.get_event_loop()
loop.run_until_complete(wsocket())

首先,你不需要把蜡烛保存到数据库中,你可以从web service获取蜡烛数据,你只需要告诉何时到何时,web service就会给你那个时期的蜡烛。要获得这些数据,你不需要web套接字,你可以用一个简单的REST API获得它。这是端点:/api/v1/market/candle

如何保存这个数据到一个变量?由于api调用的结果是JSON格式,因此可以轻松地将其转换为模型类

消息已经在一个名为msg的变量中。将其打印出来,您将看到JSON格式。从JSON中获取您想要的数据,并将其重新格式化为您喜欢的格式,然后以适合您的命名格式保存到CSV或JSON文件中。然后读取该文件并稍后将数据转储到DB。

另一种方法是使用pandas获取所需的部分JSON消息并将其转换为数据框架。从数据框架中,您可以使用pandas方法将其保存为DB或其他格式,例如

https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.to_sql.html