Сохранить полученное сообщение 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

Другие вопросы по тегам