python2与python3解析数据

本文介绍了在Python2和Python3环境下解析蓝牙模块接收到的十六进制数据帧时遇到的问题。在Python3中解析顺利,但在Python2中出现乱码。作者通过测试发现,解决Python2中数据解析问题的关键在于使用ord()函数,而非encode('string_escape')或其他复杂操作。
摘要由CSDN通过智能技术生成

蓝牙模块接收到监测设备传输来的数据,封装格式为十六进制的数据帧,蓝牙模块将数据通过串口发送给wrtnode 2p,wrtnode通过ser2net服务将数据转为网络数据,可以通过监听192.168.8.1:2001实现对数据的抓取,环境为python3时通过socket编程接收收据并无问题,但是当环境为python2时出现了数据解析乱码问题。于是经过以下测试完成对数据的转换。

python3.5

#python3
taylen@ubuntu:~$ python3
Python 3.5.2 (default, Oct  8 2019, 13:06:37) 
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> s='\xaa'
>>> print(s)
ª
>>> s=s.encode('raw_unicode_escape')
>>> s
b'\xaa'
>>> print(s)
b'\xaa'
>>> s[0]
170
>>> print(s[0])
170

python2.7

对于ASCII中无对应的数据,例如'\xaa'

>>> s
'\xaa'
>>> print(s)
�
>>> ss =s.encode('string_escape')
>>> ss
'\
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值