如何使用python检索数据MySQL值

如何使用python检索数据MySQL值,python,mysql,sockets,python-3.x,udp,Python,Mysql,Sockets,Python 3.x,Udp,我尝试从UDP套接字接收值并将其发送到MySQL数据库,然后将其放入sensors表中。然后,我尝试从MySQL数据库中的action表中检索数据,并通过UDP套接字将其发送回来 这是我的Python代码 from random import * import sys import pymysql #from datetime import datetime from socket import * import time UDP_IP="192.168.1.26" UDP_PORT = 60

我尝试从UDP套接字接收值并将其发送到MySQL数据库,然后将其放入sensors表中。然后,我尝试从MySQL数据库中的action表中检索数据,并通过UDP套接字将其发送回来

这是我的Python代码

from random import *
import sys
import pymysql
#from datetime import datetime
from socket import *
import time

UDP_IP="192.168.1.26"
UDP_PORT = 6009
UDP_PORT2 = 5016

address= ('192.168.1.207' , 5454)
client_socket = socket(AF_INET , SOCK_DGRAM)
client_socket.settimeout(1)
sock = socket (AF_INET , SOCK_DGRAM)
sock.bind((UDP_IP , UDP_PORT))
sock2 = socket(AF_INET , SOCK_DGRAM)
sock2.bind((UDP_IP , UDP_PORT2))

conn = pymysql.connect(host='127.0.0.1', user='root', passwd='', db='iot',port=3306)
x = conn.cursor()
try:
         x.execute("""INSERT INTO sensors VALUES (%s,%s)""",(0,0))
         conn.commit()
except:
        conn.rollback()

while True :

    data1 = "Temperature"

    client_socket.sendto(data1.encode("UTF-8") , address)

    rec_data1,addr = sock.recvfrom(2048)

    temperature = float(rec_data1)

    print (temperature)

    data2 = "humidity"

    client_socket.sendto(data2.encode("UTF-8") , address)

    rec_data2 , addr =sock2.recvfrom(2048)

    humidity = float(rec_data2)

    print (humidity)

    x.execute("""TRUNCATE TABLE `sensors`;""")
    x.execute("""INSERT INTO sensors VALUES (%s,%s)""",(temperature,humidity))
    conn.commit()
    time.sleep(1)

    x.execute("""Select tempout from action; """)
    data3 = x.fetchall()
    print(data3)
    x.execute("""Select humout from action;""")
    data4 = x.fetchall()
    print (data4)

    client_socket.sendto(data3.encode("UTF-8"), address)
    client_socket.sendto(data4.encode("UTF-8") , address)
这是我得到的错误:

25.12 240.0(('ON_1',),('OFF_2',),)回溯(最近一次调用):文件“C:\Users\ghina\Desktop\Mysql+socketUDP.py”,第62行,在 client_socket.sendto(data3.encode(),address)AttributeError:“tuple”对象没有属性“encode”


我不熟悉
pymsql
,但是
data3
显然是一个元组……您需要对字符串进行编码。因此,检查data3的内容,它应该包含您想要编码的文本……您可能有类似于
data3[0]的内容。encode(“UTF-8”,address)
假设文本是元组中的第一个元素我不熟悉
pymsql
,但是
data3
显然是元组……您想要编码字符串。因此,检查data3的内容,它应该包含要编码的文本……您可能有类似于
data3[0]的内容。编码(“UTF-8”,地址)
假设文本是元组中的第一个元素