我正在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)
有什么想法可以帮助您吗?
答案 0 :(得分:1)
如果只需要数字,请尝试以下操作:
val = rpm1.value
print(val.magnitude)
或者:
print(rpm1.value.magnitude)
如果需要单位,则:
print(val.units)
如果您阅读documentation for OBDresponse,则会看到response.value返回一个Pint对象。然后,您可以查看Pint类的文档,以了解如何分别访问数字和单位。
您应该可以从那里处理它。