Python:如何将对象转换为整数

标签 python obd-ii

我正在我的 Raspberry Pi 3 B+ 上用 Python 3.5.3 创建一个程序来连接我汽车的 OBDII 端口。通过蓝牙正确建立连接,当按预期使用 Python-OBD 库时,数据读取正确,但不幸的是,当创建这个库时,它会自动在 Pint 库的末尾添加一个单元。

我正在尝试转换如下所示的响应:

1689.34 rotations per minute

只是 float 部分:

1689.34

所以我可以随着时间的推移将它们相互比较。

我得到的错误如下:

TypeError: int() argument must be a string, a bytes-like object, or a number, not 'OBDresponse'

我试过的代码是:

rpm1 = connection.query(rpm_sensor)

int(rpm1)

有什么想法可以帮助解决这个问题吗?

最佳答案

如果你只想要数字,试试这个:

val = rpm1.value

print(val.magnitude)

或者:

print(rpm1.value.magnitude)

如果你想要单位那么:

print(val.units)

如果您阅读 documentation for OBDresponse ,然后您会看到 response.value 返回一个 Pint 对象。然后,您可以查看 Pint 类的文档,了解如何分别访问数字和单位。

你应该能够从那里处理它。

关于Python:如何将对象转换为整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52807910/

相关文章:

android - 从 android 应用程序中的 OBD II 蓝牙适配器读取值

python - 运行 pyinstaller 时出错(1920、 'LoadLibraryEx'、 'System cannot access the file')

python - __getattr__ 和 getattr 是什么关系?

python - 在 Python 中逐行写入 Parquet

c++ - 解析一个非常简单的配置文件

java - 如何通过蓝牙向 OBDII 适配器发送 ELM327 命令?

Python:如何过滤字典列表以获取一个键的所有值

python - 矩形的屏幕截图颜色平均

安卓 ELM327/OBD2 协议(protocol)

ios - Swift Core 与 OBD2 的蓝牙通信