python2与python3解析数据

2023-05-16

蓝牙模块接收到监测设备传输来的数据,封装格式为十六进制的数据帧,蓝牙模块将数据通过串口发送给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
'\\xaa'
>>> ss[0]
'\\'
>>> ss[1]
'x'
>>> ss[2]
'a'
>>> sss=int(ss[ss.find('x')+1:],16)
>>> sss
170

对于ASCII对应的,无法通过encode('string_escape')将转义字符‘\’去掉,可通过ord()实现。

while True:
    recvDate = tcpClientSocket.recv(1)
    #print(recvDate)
    #time.sleep(0.01)
    print("run--------")
    rs = recvDate[0]
    rs = rs.encode('string_escape')
    rslen = len(rs)
    if rslen > 2:
        rd = int(rs[rs.rfind('x')+1:],16)
    else:
        if rslen == 1:
            rd = ord(rs)
        else:
            rs = rs.decode('string_escape')
            rd = ord(rs)
    print rd

最后发现上述所有操作都是多余。。。。。。。。。。。。。

只需ord()一步即可完成!!!!!!!!!!!!!!!!!

#!/usr/bin/python
from socket import *
import time

tcpClientSocket = socket(AF_INET, SOCK_STREAM)
print('start')
serAddr = ('192.168.8.1', 2002)
tcpClientSocket.connect(serAddr)

while True:
    recvDate = tcpClientSocket.recv(1)
    #print(recvDate)
    #time.sleep(0.01)
    print("run--------")
    rs = recvDate[0]
    rd = ord(rs)
    print rd
    if rd == 170:
        print('yes')

tcpClientSocket.close()
print('end')

python中的字符数字之间的转换函数

int(x [,base ])         将x转换为一个整数    
long(x [,base ])        将x转换为一个长整数    
float(x )               将x转换到一个浮点数    
complex(real [,imag ])  创建一个复数    
str(x )                 将对象 x 转换为字符串    
repr(x )                将对象 x 转换为表达式字符串    
eval(str )              用来计算在字符串中的有效Python表达式,并返回一个对象    
tuple(s )               将序列 s 转换为一个元组    
list(s )                将序列 s 转换为一个列表    
chr(x )                 将一个整数转换为一个字符    
unichr(x )              将一个整数转换为Unicode字符    
ord(x )                 将一个字符转换为它的整数值    
hex(x )                 将一个整数转换为一个十六进制字符串    
oct(x )                 将一个整数转换为一个八进制字符串   
 
 
chr(65)='A'
ord('A')=65
 
int('2')=2;
str(2)='2'

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python2与python3解析数据 的相关文章

  • python练习题-jmu_python_是否是数

    本题要求从键盘输入一个字符串 判断该串是否属于整数 浮点数或者复数的表示 输入格式 输入一个字符串 输出格式 输出yes或no 输入样例 299 输出样例 yes 几个语句判断input输入的类型的行了 当然这里还要有一个异常处理 eval
  • Python3之优化邮件中发送HTMLTestRunner生成的报告加附件

    系列文章目录 提示 这里可以添加系列文章的所有文章的目录 目录需要自己手动添加 例如 第一章 Python 机器学习入门之pandas的使用 提示 写完文章后 目录可以自动生成 如何生成可参考右边的帮助文档 文章目录 系列文章目录 前言 一
  • 【2019.05.26】JS逆向——破解 企名片 参数(encrypt_data)爬虫 超级详细

    参考这个博客 作者写的很流畅 一看就是个大佬 要向大佬学习 企名片地址 要获取图中数据 分析请求 根据大佬博客的点拨 我们可以知道这个网站的数据都在这个参数当中 要获取这些数据 我们需要这个网页是怎么把这一段参数解析的 解析参数 encry
  • selenium webdriver 开启网页失败,被发现为爬虫,的解决办法

    1 换用火狐浏览器 2 隐藏谷歌浏览器中的特殊变量值 from selenium import webdriver options webdriver ChromeOptions 防止被检测 旧版本用法 1 chrome在79版之前用这个
  • Python—爬虫之BeautifulSoup模块(解析—提取数据)

    Python 爬虫之BeautifulSoup模块 解析 提取数据 安装BeautifulSoup模块 解析数据 提取数据 find 提取出满足条件的第一个数据 find all 提取出满足条件所有数据 Tag 对象的属性和方法 安装Bea
  • Python3 获取本机所有IP地址

    版权声明 更多最新原创文章请访问 最新原创主页 更多最全原创文章请访问 更多原创主页 先上代码 coding utf 8 Time 2018 2 10 18 24 Author 蛇崽 Email 643435675 QQ com File
  • 详细!PyCharm连接MySQL数据库教程+心得

    一家懂得用细节留住客户的3年潮牌老店我必须支持 luyao1931 第一步 安装MySQL 下载地址 https dev mysql com downloads mysql 下载完后 我们将 zip 包解压到相应的目录 这里我将解压后的文件
  • Python3实现向指定邮箱发送邮件(支持附件文件、图片等)

    Background 最近业务需求需要把生成的月报定时发送到指定邮箱 直接在网上找了相关经验改巴改巴给实现了 测试可以直接使用 生产是我从MySQL数据库获取文件信息和邮箱等使用的 程序中的注释相当清楚了 定时是通过shell脚本实现的 获
  • 使用 selenium 连接已经打开的 chrome 浏览器

    1 方法一 新建文件夹test 进入chrome exe 目录 打开CMD 输入 chrome exe remote debugging port 9999 user data dir D test 弹出 浏览器框 pycharm运行脚本如
  • LeetCode 刷题记录14. 最长公共前缀

    题目描述 编写一个函数来查找字符串数组中的最长公共前缀 如果不存在公共前缀 返回空字符串 说明 示例 1 输入 strs flower flow flight 输出 fl 示例 2 输入 strs dog racecar car 输出 解释
  • Python项目:学生信息管理系统(完整版)

    本文是基于上一篇 python项目 学生信息管理系统 初版 进行了完善 并添加了新的功能 主要包括有 完善部分 输入错误 无数据查询等异常错误 新的功能 文件的操作 文件的读写 其中重点是对文本字符串的详细解析 关于整个解析拆解和重组详见代
  • python matplotlib数据可视化案例-生成柱状图,饼图(扇形图),词云。

    目前python spark scala十分火爆 于是我就利用爬虫将猎聘上的招聘信息进行了一下获取 相比起来 猎聘上的职位数量还是很多的 3中技术类型以 python spark scala 作为关键词 一共爬取了一万多条信息 爬取的主要信
  • selenium webdriver一种解决打开chrome浏览器的过程

    1 下载59或58版本的Chrome浏览器 下载地址 http www pc6 com SoftView SoftView 22726 html 2 下载对应的驱动 驱动下载地址如下 当前我使用的版本是2 32 http npm taoba
  • Python3之基本数据类型总结

    日期 2019年12月15日 作者 Commas 注释 学习就是为了忘记 总结一下python3的基本数据类型相关的知识 如果您想了解更多有关Python的知识 那么请点 我的Python目录 文章目录 一 变量在内存中的存储 二 内置函数
  • Python3中参数*args和**kwargs介绍

    在Python中 我们可以使用两种特殊符号将可变数量的参数传递给函数 args和 kwargs 你可以使用任何单词代替args和kwargs 但通常做法是使用args和kwargs args允许函数接受任意数量的位置参数 positiona
  • Python3 PyQt5 实现文件打开及保存

    coding utf 8 Form implementation generated from reading ui file filemanage ui Created by PyQt5 UI code generator 5 12 2
  • Python3安装包下载(附3.8.7、3.7.9、3.6.8版本)

    三部曲 1 到 源码 网站源码 源码下载 源码之家 站长下载 搜索 Python 并下载 搜索结果在较底部 2 到官网 https www python org downloads 对应版本的页面 如 https www python or
  • python3生成中文词云图

    usr bin python3 coding utf 8 coding utf 8 导入wordcloud模块 from wordcloud import WordCloud 中文分词库 pip install jieba import j
  • Python3之异常with语句

    高级语法之异常with 语法 with 表达式1 as 变量1 表达式2 as 变量2 语句块 with的作用 使用于对资源进行访问的场合 确保使用过程中不管是否发生异常都会执行必须的 清理 操作 并释放资源 如 文件打开后自动关闭 线程中
  • python3 No module named 'PIL'

    在python3 scrapy框架已经安装好的情况下 还是出现了 python3 No module named PIL 在Python3下 PIL已经被Pillow替代了 所以只需要安装Pillow就可以了 使用命令 pip3 insta

随机推荐