Сохранить полученное сообщение Candle Stick из KuCoin Websocket в переменную, а затем в базу данных
У меня есть этот код для подключения к веб-сокету KuCoin и получения данных свечи. У меня вопрос: как сохранить сообщение в переменной (возможно, в другом скрипте)? Я хочу впоследствии использовать эти данные и сохранить их в базе данных, а затем использовать их для расчетов и построения графиков.
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())
2 ответа
ну, во-первых, вам не нужно сохранять свечи в базе данных, вы можете получать данные о свечах из веб-службы, вам просто нужно указать, когда и когда, и веб-служба выдаст вам свечи за этот период. чтобы получить эти данные, вам не нужен веб-сокет, вы можете получить его с помощью простого REST API. это конечная точка: /api/v1/market/candles
как сохранить эти данные в переменной? поскольку результат вашего вызова api находится в формате JSON, вы можете легко преобразовать его в класс модели
Сообщение уже находится в переменной с именем msg. Распечатайте его, и вы увидите формат JSON. Возьмите нужные данные из этого JSON и переформатируйте их так, как вам нравится, и сохраните в файл CSV или json в формате именования, который вам подходит. Затем снова прочитайте этот файл и выгрузите данные в БД позже.
Альтернативой является использование pandas, чтобы получить часть нужного сообщения JSON и превратить его в фрейм данных. Из кадра данных вы можете использовать методы pandas, чтобы сохранить его в БД или других форматах, т.е.
https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.to_sql.html