我正在尝试通过 mqtt 将值从我网络上的 esp32 发送到我的 RPi,然后它会评估这些值并用它做一些事情。
我已经编写了代码并在我的电脑上尝试了它没有任何问题,但是当在 RPi 上执行完全相同的代码时,它开始吐出ValueError
s。
payload = str(message.payload)
payload = float(payload[2:-1])
像这样运行代码时,它说:
ValueError: could not convert string to float:
尝试先将其转换为整数也会返回错误:
ValueError: invalid literal for int() with base 10: ''
(需要 [2:-1] 是因为要转换的有效载荷/字符串始终作为 b'有效载荷'接收)
在电脑上使用时它不会抛出任何错误。我还尝试在转换之前打印出字符串,这表明它们只包含数字。
我在我的电脑和 RPi 上都运行 Python3.4(也试过 2.7,没有用。)
我希望任何人都可以向我解释这种奇怪的行为,提前致谢。
切片不是将字节数组转换为str
.
string[2:-1]
对于任何string
少于 3 个字符的字符,返回一个空字符串。
事实上,int
和 都float
接受表示数字的字节数组,所以你甚至不应该打扰。
float(message.payload)
应该可以工作(如果它不为空并且代表多个课程)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句