python TypeError:需要float参数,而不是list

时间:2019-02-04 10:07:18

标签: python mysql raspberry-pi

非商业,非专业用户,正在为业余项目寻求建议。

我有两个这样的Pi设置: Pi 1托管一个Pimoroni Enviro Phat,并将其读数也写入Pi 1上的数据库

Pi 2托管有一个Pimoroni Scroll PhatHD。 我希望它从Pi 1上的数据库中读取数据,并将其显示在Pi 2上的Scroll Phat HD上

我已经建立了所有必要的Mysql连接要求,它们都很好。

如何从Pi1上的数据库中获取读数以在Pi 2上的Scroll PhatHD上滚动?

import signal
import time
import scrollphathd
from scrollphathd.fonts import font5x7
import mysql.connector
from mysql.connector import Error
con = mysql.connector.connect(host='192.168.#.##',database='test',user='#####',password='#######')


cur = con.cursor() 
cur.execute('SELECT Yaxis FROM readings ORDER BY Added DESC LIMIT 1')


### Keep trailing comma from SELECT result away: 
result = [row[0] for row in cur.fetchall()]

### Show result of SELECT query in terminal
print result

# temperature = int((float('result')))
temperature = ['result']

# Write the "Hello World!" string in the buffer and
#   set a more eye-friendly default brightness
scrollphathd.write_string(" Hello World! %.1fC "%(temperature), brightness=0.5)

# Auto scroll using a while + time mechanism (no thread)
while True:
    # Show the buffer
    scrollphathd.show()
    # Scroll the buffer content
    scrollphathd.scroll()
    # Wait for 0.1s
    time.sleep(0.1)

错误显示:“ TypeError:需要浮点参数,而不是列表” 谢谢。


好的,我的工作很好。 Pi2正在从Pi1的数据库中读取三个参数,并在某些if/elif中对其进行处理,以将其适当地显示在Scroll PhatHD上。

我只是想知道。在Python中,有没有一种方法可以像使用PHP一样使用require将数据库连接信息保存在单独的文件中? 谢谢。

2 个答案:

答案 0 :(得分:0)

temperature = ['result']

temperature变量设置为列表,而行

scrollphathd.write_string(" Hello World! %.1fC "%(temperature), brightness=0.5)

期望temperature变量是float类型的变量。

temperature = result[0]替换该行即可解决,但请注意,它不能处理查询返回空响应的情况。

答案 1 :(得分:0)

您的错误似乎是由以下原因引起的:

scrollphathd.write_string(" Hello World! %.1fC "%(temperature), brightness=0.5)

您正尝试将temperature的字符串设置为float的格式,但在上方您写了temperature = ['result']这是一个列表。