字符串到 int/float 转换在树莓派上的 python 中不起作用

理智

我正在尝试通过 mqtt 将值从我网络上的 esp32 发送到我的 RPi,然后它会评估这些值并用它做一些事情。

我已经编写了代码并在我的电脑上尝试了它没有任何问题,但是当在 RPi 上执行完全相同的代码时,它开始吐出ValueErrors。

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,没有用。)

我希望任何人都可以向我解释这种奇怪的行为,提前致谢。

深空
  1. 切片不是将字节数组转换为str.

  2. string[2:-1]对于任何string少于 3 个字符的字符,返回一个空字符串

事实上,int和 都float接受表示数字的字节数组,所以你甚至不应该打扰。

float(message.payload) 应该可以工作(如果它不为空并且代表多个课程)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章