如何解决1064 (42000):找不到语法修复
我创建了一个特定的对象(system_database),它基本上是后端 MysqL 用于保存数据流的对象。我这样做是为了我的 fyp
import MysqL.connector as db
from MysqL.connector.cursor import MysqLCursor
import pandas as pd
class system_database(object):
def __init__(self,host,user,password,db):
self.host = host
self.user = user
self.password = password
self.db = db
self.create_connection()
self.cursor = MysqLCursor(self.con)
def create_connection(self):
self.con = db.connect(host=self.host,user=self.user,password=self.password,database=self.db)
self.cursor = MysqLCursor(connection=self.con)
self.con.commit()
def _cursor(self):
MysqLCursor(self.con)
self.con.commit()
def close_db_connection(self):
self.con.close()
def create_table(self,symbol: str,interval: str):
self.cursor.execute(operation=f'CREATE TABLE IF NOT EXISTS {symbol}_{interval}(Event_Time BIGINT,High FLOAT(4,4),Open FLOAT(4,Close FLOAT(4,Low FLOAT(4,Volume DOUBLE(4,4))')
# self.con.commit()
包含类文件夹python文件但不在主程序中的工人 主程序文件
sys_db = system_database(MysqL_host,MysqL_user,MysqL_pass,MysqL_database)
将历史数据保存到 sql 的方法
def _on_message(ws: websocket,message):
json_message = json.loads(message)
candle = json_message['k']
is_candle_close = candle['x']
close = candle['c']
high = candle['h']
low = candle['l']
vol = candle['v']
open = candle['o']
index = [candle['s']]
interval_of_candle = [candle['i']]
num_of_Trades = candle['n']
time_of_event = [json_message['E']]
prices = (high,open,close,low,vol)
columns = ['High','Open','Close','Low','volume']
data = pd.DataFrame(data=[prices],columns=columns,index=time_of_event)
print(data)
#sys_db object doesnt perform
sys_db.create_table(symbol=f'{symbol}',interval=f'{interval_of_candle}')
# sys_db.save_to_db(df=data,symbol=f'{symbol}',interval=f'{interval_of_candle}')
# dataBase_stream = pd.read_sql(f'{symbol}_{interval_of_candle}',con=sys_db)
def Data_stream(symbol: str,timePeriod: str):
userSocket = f'wss://stream.binance.com:9443/ws/{symbol}@kline_{timePeriod}'
userWebSocket = websocket.WebSocketApp(userSocket,on_message=_on_message)
userWebSocketThread = threading.Thread(target=userWebSocket.run_forever)
userWebSocketThread.daemon = True
userWebSocketThread.start()
# main program
if __name__ == '__main__':
Data_stream(symbol,'1m')
1064 (42000): You have an error in your sql Syntax; check the manual that corresponds to your MysqL server version for the right Syntax to use near '['1m'](Event_Time BIGINT,Lo' at line 1
主程序中的光标有问题吗? 我假设是系统数据库 .py(执行它没有错误并创建表)
这里似乎有什么问题?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。