Python hexstring-list-str之间的转换方法


Posted in Python onJune 12, 2019

在Python操作数据内容时,多数情况下可能遇到下面3种类型的数据处理:

hexstring 如:'1C532145697A8B6F'

str 如:'\x1C\x53\x21\x45\x69\x7A\x8B\x6F'

list 如:[0x1C, 0x53, 0x21, 0x45, 0x69, 0x7A, 0x8B, 0x6F]

各种第三方模块(如pyDes),或者自己写的接口中,可能存在由于类型不统一需要在这3种数据中来回切换的情况。

需要用到的核心的方法如下:

list() 将对象转换为list

str() 将对象转换为str

bytearray() 将对象转换为bytearray

bytearray.fromhex() 将对象从hexstring转换为bytearray

binascii.b2a_hex() 将对象从str转换为hexstring

1. 整形列表转str

如:[0x53, 0x21, 0x6A] -> '\x53\x21\x6a'

方法:list -> bytearray -> str

x = [0x53, 0x21, 0x6A]
y = str(bytearray(x))

2. str转整形列表

如:'\x53\x21\6a' -> [0x53, 0x21, 0x6A]

方法:逐个字符转成十进制

x = '\x53\x21\x6a'
y = [ord(c) for c in x]

3. 整形列表转换为hex string

如: [0x53, 0x21, 0x6A] -> '53216A'

方法:list -> bytearray -> str -> hexstring

import binascii
x = [0x53, 0x21, 0x6A]
y = str(bytearray(x))
z = binascii.b2a_hex(y)

4. hex string转换为整形列表

如: '53216A' -> [0x53, 0x21, 0x6A]

方法:hexstring -> bytearray -> list

x = '53216A'
y = bytearray.fromhex(x)
z = list(y)

5. hex string转换为str

如: '53216A' -> '\x53\x21\x6A'

方法:hexstring -> bytearray -> str

x = '53216A'
y = bytearray.fromhex(x)
z = str(y)

以上这篇Python hexstring-list-str之间的转换方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python与php实现分割文件代码
Mar 06 Python
使用tensorflow实现AlexNet
Nov 20 Python
Python装饰器用法实例总结
Feb 07 Python
Python PyQt4实现QQ抽屉效果
Apr 20 Python
python抽取指定url页面的title方法
May 11 Python
在python中pandas的series合并方法
Nov 12 Python
Python判断是否json是否包含一个key的方法
Dec 31 Python
Django 内置权限扩展案例详解
Mar 04 Python
python实现AES加密解密
Mar 28 Python
Python之time模块的时间戳,时间字符串格式化与转换方法(13位时间戳)
Aug 12 Python
Python Numpy数组扩展repeat和tile使用实例解析
Dec 09 Python
使用Keras实现Tensor的相乘和相加代码
Jun 18 Python
对python3.4 字符串转16进制的实例详解
Jun 12 #Python
python版DDOS攻击脚本
Jun 12 #Python
selenium处理元素定位点击无效问题
Jun 12 #Python
selenium跳过webdriver检测并模拟登录淘宝
Jun 12 #Python
python3.4 将16进制转成字符串的实例
Jun 12 #Python
python binascii 进制转换实例
Jun 12 #Python
Python3 实现串口两进程同时读写
Jun 12 #Python
You might like
PHP遍历二维数组的代码
2011/04/22 PHP
php根据isbn书号查询amazon网站上的图书信息的示例
2014/02/13 PHP
PHP编程中的Session阻塞问题与解决方法分析
2017/08/07 PHP
swoole和websocket简单聊天室开发
2017/11/18 PHP
PHP实现生成模糊图片的方法示例
2017/12/21 PHP
可兼容php5与php7的cURL文件上传功能实例分析
2018/05/11 PHP
详解laravel安装使用Passport(Api认证)
2018/07/27 PHP
JavaScript中的16进制字符(改进)
2011/11/21 Javascript
jquery的ajax简单结构示例代码
2014/02/17 Javascript
12行javascript代码绘制一个八卦图
2015/04/02 Javascript
jQuery实现网站添加高亮突出显示效果的方法
2015/06/26 Javascript
JavaScript实现基于十进制的四舍五入实例
2015/07/17 Javascript
jQuery实现移动端滑块拖动选择数字效果
2015/12/24 Javascript
JavaScript判断数组重复内容的两种方法(推荐)
2016/06/06 Javascript
JS实现漂亮的时间选择框效果
2016/08/20 Javascript
详解vue过滤器在v2.0版本用法
2017/06/01 Javascript
微信小程序实战篇之购物车的实现代码示例
2017/11/30 Javascript
在react中使用vuex的示例代码
2018/07/30 Javascript
express启用https使用小记
2019/05/21 Javascript
微信小程序制作扭蛋机代码实例
2019/09/24 Javascript
vue路由传参页面刷新参数丢失问题解决方案
2019/10/08 Javascript
使用Element的InfiniteScroll 无限滚动组件报错的解决
2020/07/27 Javascript
浅析JavaScript 函数柯里化
2020/09/08 Javascript
javascript this指向相关问题及改变方法
2020/11/19 Javascript
Python中使用装饰器和元编程实现结构体类实例
2015/01/28 Python
python计算圆周率pi的方法
2015/07/11 Python
Python中functools模块函数解析
2017/03/12 Python
python实现广度优先搜索过程解析
2019/10/19 Python
Python随机数函数代码实例解析
2020/02/09 Python
模具设计与制造专业推荐信
2014/02/16 职场文书
职工代表大会主持词
2014/04/01 职场文书
《永远的白衣战士》教学反思
2014/04/25 职场文书
停课通知书
2015/04/24 职场文书
2019年市场部个人述职报告(三篇)
2019/10/23 职场文书
详解JVM系列之内存模型
2021/06/10 Javascript
Typescript类型系统FLOW静态检查基本规范
2022/05/25 Javascript