Python 3.x 如何从sqlite中剥离一个元组,以便在python中将其用作浮点?
我试图使用从sqlite3文件读取的单个数据,它以下面的25.5格式返回给我。在脚本的下一部分中,我希望能够触发GPIO引脚输出,在温度降至某一点以下时打开继电器,在温度高于另一点时再次关闭继电器。我的代码如下Python 3.x 如何从sqlite中剥离一个元组,以便在python中将其用作浮点?,python-3.x,sqlite,raspberry-pi,gpio,Python 3.x,Sqlite,Raspberry Pi,Gpio,我试图使用从sqlite3文件读取的单个数据,它以下面的25.5格式返回给我。在脚本的下一部分中,我希望能够触发GPIO引脚输出,在温度降至某一点以下时打开继电器,在温度高于另一点时再次关闭继电器。我的代码如下 import RPi.GPIO as GPIO import time import sqlite3 GPIO.setmode(GPIO.BCM) GPIO.setwarnings(False) #GPIO.setup(18, GPIO.OUT) # Set up all variab
import RPi.GPIO as GPIO
import time
import sqlite3
GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)
#GPIO.setup(18, GPIO.OUT)
# Set up all variables #
temp_min = 25.375
temp_max = 25.5
#############
# Main Loop #
#############
while True:
def display_5sec_data():
conn = sqlite3.connect('ds18b20.db')
c = conn.cursor()
c.execute("SELECT (display1) FROM aquarium2 ORDER BY rowid DESC LIMIT 1")
data1 = c.fetchone()
conn.close()
#return data1
print(data1)
Display = display_temp()
data1= (display_5sec_data())
if data1 <= 25.25 : # if temp is less or equal to 25 deg
print("heater on")
#GPIO.output(18, GPIO.HIGH)
if data1 >= 25.80 :
print("heater off")
#GPIO.output(18, GPIO.LOW)
time.sleep(10)
display_5sec_data()
任何帮助都会很好。这是一个简单的修复方法,只是希望我能多玩一点。我只需要在if语句中添加float 这是代码 如果floatdata1[0]>=25.60:
print("heater off")
bus.write_pin(11, 0)
bus.write_pin(10, 0)
time.sleep(120)
是的,那是一个元组。你读过它们是什么吗?如何访问它们包含的值?jonrsharpe我一直在研究这个问题,但到目前为止,它对我来说没有意义。因此,为什么我在这里问了一个问题,我知道它是一个元组,我查过如何将它转换成一个float,这样我就可以使用数据了,但到目前为止,还没有找到一个能帮助我的例子。我猜在将近60岁时开始学习编码有点晚了。谢谢jonrsharpe,我已经看过了,我可以看到我需要去掉第一个元素,所以我尝试在我的if语句中使用data1[0],它已经停止了错误消息,但仍然没有对if语句执行操作。