SQLite выбивает работу WebSocket
День добрый. берутся данные через WebSocket с биржи, каждую запись нужно вносить в БД SQLite3. Однако доходя до команды "cursor.execute" код крашится.
Выдавая "WebSocket Inverse Perp(Auth) encountered error: unrecognized token: "25T18"
from time import sleep
from pybit import inverse_perpetual
import sqlite3
ws_inverseP = inverse_perpetual.WebSocket(
test=True,
ping_interval=30,
ping_timeout=10,
domain="bybit"
)
def handle_message(msg):
order = msg['data']
for item in range(len(order)):
if order[item]['side'] == 'Buy':
connect = sqlite3.connect('db/tradeflow.sqlite')
cursor = connect.cursor()
cursor.execute(f"INSERT INTO Buy(price, volume, timestamp) "
f"VALUES({order[item]['price']}, {order[item]['size']}, {order[item]['timestamp']})")
connect.commit()
connect.close()
ws_inverseP.trade_stream(handle_message, "BTCUSD")
while True:
sleep(1)
файл sqlite - tradeflow.sqlite
CREATE TABLE Buy (
[index] INTEGER PRIMARY KEY ASC AUTOINCREMENT,
price DOUBLE,
volume DOUBLE,
timestamp STRING
);
Ответы (1 шт):
Автор решения: Death's Head
→ Ссылка
Методом проб и ошибок, удалась завести рабочий вариант получения данных и запись их в базу.
import sqlite3
from time import sleep
from pybit import inverse_perpetual
ws_inverseP = inverse_perpetual.WebSocket(
test=True,
ping_interval=30,
ping_timeout=10,
domain="bybit"
)
def handle_message(msg):
order = msg['data']
data = (order[0]['price'], order[0]['size'], order[0]['timestamp'], order[0]['side'])
connect = sqlite3.connect('db/tradeflow.sqlite')
cursor = connect.cursor()
cursor.executemany("INSERT INTO trades VALUES (?, ?, ?, ?)", (data,))
connect.commit()
connect.close()
ws_inverseP.trade_stream(handle_message, "BTCUSD")
while True:
sleep(1)