微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

1064 (42000):找不到语法修复

如何解决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')

错误来自链接到对象的 _on_message 函数

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 举报,一经查实,本站将立刻删除。