问题描述
抱歉问了一个很简单的问题。我知道几种语言,但我对 python 很陌生。 我正在通过物联网设备收集以下数据,这是我可以获得的所有信息:
print('This is my data : %s' % (data)) => "This is my data : b'\x95\xfe683475065015121'"
print(type(data)) => "<class 'str'>"
问题是,我想从数据中提取数值,例如:
- 丢弃开头的 \x95\xfe
- a = 68.3(前 3 位数字 / 10)
- b = 475 或 475.0(下三位数字)
- c = 065 或 65.0(接下来的 3 位数字)...
- ...(我想我会从这里得到其余的。)
非常感谢您的帮助,祝您有美好的一天。
PS:我已经尝试过 float.fromhex(data[y:Z]) - 或 data.decode("hex"),但没有运气... bytes.fromhex(data[y:z]) 给了我一个结果也很奇怪...
解决方法
当然:
t = b'\x95\xfe683475065015121'
t = t[2:] # disregard \x95\xfe
print(t)
a = int(t[:3]) / 10
b = int(t[3:6])
c = int(t[6:9])
print(a,b,c) # >>> 68.3 475 65