将数据从python存储到raspberry pi3上的mysql,在获取和使用相同的数据时出现问题

g2ieeal7  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(337)

我一直在尝试使用python脚本将值保存到mysql数据库中,而且进展顺利。我存储的数据是列中的整数60 NIGHT_SECONDS 在table上 weather_settings . 但是,当我试图获取数据以在另一个脚本中使用时,似乎得到了值 ((60L,),) . 我试过用谷歌搜索这个,但我没有运气。有人能帮我理解我做错了什么吗?
这是我的密码:

def gettime():
    db = MySQLdb.connect("localhost","user","pass","weather")
    cursor = db.cursor()

    try:
        sql = "select NIGHT_SECONDS from weather_settings"
        cursor.execute(sql)
        global delay
        delay = cursor.fetchall()
        print("Data fetched from MySQL")
        #print(delay)
        print(delay)

    except:
        print("Database fetching failed")

    cursor.close()
    db.close()

这是最终结果:

Data fetched from MySQL
((60L,),)

如果我试着用这个值 time.sleep(delay) 我明白了:

TypeError: a float is required

所以我试了这个:

delay = float(delay)

这也不管用。

c9qzyr3d

c9qzyr3d1#

你的问题是 fetchall() 返回行的元组,行本身就是列值的元组,因此需要像 delay[0][0] .
这可以简化一点使用 fetchone() :

weather_settings_row = cursor.fetchone()
delay = float(weather_settings_row[0])

相关问题