开发者社区 问答 正文

将Python3插入MariaDB失败怎么办 ?

我想从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语句正在另一个脚本中运行。

我该怎么办?

展开
收起
被纵养的懒猫 2019-09-23 17:22:33 543 分享 版权
0 条回答
写回答
取消 提交回答