请大家看看怎么消除这个错误TypeError: execute() takes from 2 to 3 positional arguments but 4 were given


import socket
import pymysql
import datetime

def service_client(new_client_socket, i):  # 接受客户端发送的请求信息
    # GET / HTTP/1.1
    print()
    print("第{}次请求".format(i))
    print('-' * 20)
    msg = ''        # 接收APP传来的按键信息
    body = ''       #接收传感器数据
    accept_time= ''
    body = new_client_socket.recv(1024 * 1024)


    print("发过来的数据是:"+str(body))
    accept_time = datetime.datetime.now().strftime("%H,%M,%S")
    conn = pymysql.connect(host='127.0.0.1', user='root', password='1219', database='farm',
                           charset='utf8')  # 连接database
    cursor = conn.cursor()  # 生成cursor对象
    # 插入数据
    cursor.execute("INSERT INTO data_t VALUES (%s,%s)", [(body)], accept_time)
    conn.commit()
    # 查询按键状态
    a=cursor.execute('select * from buttom_msg where ID = (SELECT MAX(ID) from buttom_msg);')

    print(body)
    print(a)
    new_client_socket.send(a.encode())

    print('第{}次请求完毕'.format(i))
    new_client_socket.close()


def main():
    tcp_server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)  # 1. 搭建tpc服务器端 创建套接字
    tcp_server_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR,
                                 1)  # 设置当服务器先close 即服务器端4次挥手之后资源能够立即释放,这样就保证了,下次运行程序时 可以立即绑定7788端口
    tcp_server_socket.bind(('192.168.1.113', 8000))  # 2. 绑定address
    tcp_server_socket.listen(128)  # 3. 将手机设置为正常的 响铃模式(让默认的套接字由主动变为被动 listen)
    i = 0
    while True:
        i += 1
        new_client_socket, client_addr = tcp_server_socket.accept()  # 4. 等待别人的电话到来(等待客户端的链接 accept)
        service_client(new_client_socket, i)  # 5. 为这个客户服务

    cp_server_socket.close()  # 7. 关闭socket网络io流


#conn = pymysql.connect(server='DESKTOP-O0FGIGJ\SYX', database="wlw_jns")  # 使用Windows验证


if __name__ == '__main__':
    main()

错误的意思是execute方法接受2到3个位置参数,但给出了4个
报错是23行吗?看上述代码没有看到4个参数的execute方法调用啊

我情况跟你一模一样,请问您解决了么