while循环中的零星Python错误TypeError:'int'对象不可迭代

时间:2017-03-30 13:37:46

标签: python raspberry-pi grovepi+

这是我的脚本中有错误的部分:

while:
    sensorIn = 8
    sensorOut = 5
    sensorAC = 7
    blue = 0
    white = 1
    [tempIn, humIn] = grovepi.dht(sensorIn, 1)
    print("tempIn = %.02f C humIn =%.02f%%"%(tempIn, humIn))
    [tempOut, humOut] = grovepi.dht(sensorOut, 1)
    print("tempOut = %.02f C humOut =%.02f%%"%(tempOut, humOut))
    [tempAC, humAC] = grovepi.dht(sensorAC, 1)
    print("tempAC = %.02f C humAC =%.02f%%"%(tempAC, humAC))

随机出错:

TypeError: 'int' object not iterable on the line: [tempAC, humAC] = grovepi.dht(sensorAC, 1)

这与Raspberry Pi和GrovePi板一起使用,可从温度和湿度传感器获取读数。它将循环播放,读取读数,然后用这些读数做一些事情,然后再睡15分钟再开始。

也许while循环是问题...我曾经在没有while循环的情况下运行它,并且会在crontab中将其设置为每15分钟运行一次。有时读数会出错,但是会将脚本作为0传递,脚本不会停止并输出错误,它会继续执行并只将值报告为零。

我看过很多关于这个错误的不同帖子,但是我只遇到了错误总是出现并且不允许脚本完全运行的情况,在我的情况下,它只是偶尔发生。

1 个答案:

答案 0 :(得分:1)

看起来这是grovepi.dht函数的一个已知问题,偶尔可能是由于与设备通信问题引起的。 http://forum.dexterindustries.com/t/incorrect-readings-and-typeerror/1582/2

解决方案只是为类型错误添加异常处理,因为它只是一个间歇性问题(有关如何执行此操作的示例,请参阅链接的帖子)。