python |在使用pymysql库实现SQL数据库时,SQL语句中存在无法解决的语法错误

python |在使用pymysql库实现SQL数据库时,SQL语句中存在无法解决的语法错误,python,mariadb,Python,Mariadb,完整代码: 导入pymysql db=pymysql.Connect(host=“localhost”,user=“root”,port=3306,db=“spider”) cursor=db.cursor() 资料={ “id”:“20120001”, 'name':'BOb', 年龄:21岁 } 学生桌 keys=',.join(data.keys()) 值=','。连接(['%s']*len(数据)) erro语句: 1064,“您的SQL语法有错误;请检查与您的MariaDB服务器版本相

完整代码: 导入pymysql db=pymysql.Connect(host=“localhost”,user=“root”,port=3306,db=“spider”) cursor=db.cursor() 资料={ “id”:“20120001”, 'name':'BOb', 年龄:21岁 } 学生桌 keys=',.join(data.keys()) 值=','。连接(['%s']*len(数据))

erro语句:
1064,“您的SQL语法有错误;请检查与您的MariaDB服务器版本相对应的手册,以了解在第1行“UPDATEid='20120001',name='BOb',age=21”附近使用的正确语法”) 我不知道怎么解决它。如果你能帮助我,非常感谢你

UPDATE
是一个关键字
id
是一个列名<代码>更新ID是什么

**sql = "INSERT INTO {table}({keys}) VALUES({values}) ON DUPLICATE KEY UPDATE".format(table=table,keys=keys,values=values)**
update= ','.join(['{key}=%s'.format(key=key) for key in data])
sql += update
try:
    if cursor.execute(sql,tuple(data.values())*2):
        print("Succesful")
        db.commit()
except Exception as e:
    print(e.args)
    db.rollback()
db.close()
UPDATEid='20120001',name ...