我想从Alecto WS-1200气象站插入数据,该数据是在树莓派3上读取的,其中RF Link软件运行在通过USB连接到RPI的arduino mega上。
这是我的代码:
import mysql.connector as mariadb import serial
#Initialization ser = serial.Serial(port='/dev/ttyUSB0', baudrate=57600)
#Read sensor while True: readBytes = ser.readline() line = readBytes.decode("utf-8") print(line) list = line.split(";") if list[2] == "Alecto V5": rain = list[5].split("RAIN=", 1)[1] rainFloat = float.fromhex(rain) rainFloat = rainFloat / 10 mariadb_connection = mariadb.connect(host='localhost', user='test', password='test', database='test') cursor = mariadb_connection.cursor()
try:
cursor.execute("SELECT interpolated FROM rain_data ORDER BY created_at DESC LIMIT 1")
result = cursor.fetchone()
if result is not None:
previousVal = result[0]
if rainFloat - previousVal >= 0:
interpolated = rainFloat - previousVal
cursor.execute("INSERT INTO rain_data (interpolated, raw_value) VALUES (%s, %s)", interpolated, rainFloat)
else:
cursor.execute("INSERT INTO rain_data (interpolated, raw_value) VALUES (%s, %s)", rainFloat, rainFloat)
else:
cursor.execute("INSERT INTO rain_data (interpolated, raw_value) VALUES (%s, %s)", rainFloat, rainFloat)
print(cursor.rowcount)
except mariadb.Error as error:
print("Error: {}".format(error))
finally:
mariadb_connection.commit()
mariadb_connection.close()
不幸的是,尽管执行了insert语句,但是此代码无法正常工作。行计数返回-1。没有引发错误代码。但是,类似的insert语句正在另一个脚本中运行。
我该怎么办?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。