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 cookbook(数据结构与算法)让字典保持有序的方法
Feb 18 Python
numpy给array增加维度np.newaxis的实例
Nov 01 Python
python实现三次样条插值
Dec 17 Python
基于Python安装pyecharts所遇的问题及解决方法
Aug 12 Python
Python queue队列原理与应用案例分析
Sep 27 Python
在Tensorflow中查看权重的实现
Jan 24 Python
PyCharm2019 安装和配置教程详解附激活码
Jul 31 Python
Python离线安装各种库及pip的方法
Nov 28 Python
用Python实现童年贪吃蛇小游戏功能的实例代码
Dec 07 Python
Python 找出英文单词列表(list)中最长单词链
Dec 14 Python
Django 实现图片上传和下载功能
Dec 31 Python
用Python自动清理系统垃圾的实现
Jan 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 SQL Injection with MySQL
2011/02/27 PHP
PHP中大于2038年时间戳的问题处理方案
2015/03/03 PHP
ThinkPHP模型详解
2015/07/27 PHP
浅谈PHP封装CURL
2019/03/06 PHP
Yii框架的布局文件实例分析
2019/09/04 PHP
使用CSS3实现字体颜色渐变的实现
2021/03/09 HTML / CSS
jQuery 常见学习网站与参考书
2009/11/09 Javascript
从零开始学习jQuery (十) jQueryUI常用功能实战
2011/02/23 Javascript
javascript unicode与GBK2312(中文)编码转换方法
2013/11/14 Javascript
node.js中的console.log方法使用说明
2014/12/09 Javascript
javascript操作数组详解
2014/12/17 Javascript
Javascript中的高阶函数介绍
2015/03/15 Javascript
纯jquery实现模仿淘宝购物车结算
2015/08/20 Javascript
微信小程序 教程之注册页面
2016/10/17 Javascript
一个有意思的鼠标点击文字特效jquery代码
2017/09/23 jQuery
Vue中正确使用jQuery的方法
2017/10/30 jQuery
Vue 实现列表动态添加和删除的两种方法小结
2018/09/07 Javascript
解决Layui 表格自适应高度的问题
2019/11/15 Javascript
JS数组转字符串实现方法解析
2020/09/04 Javascript
element-ui中dialog弹窗关闭按钮失效的解决
2020/09/22 Javascript
[02:34]2016完美“圣”典风云人物:BurNIng专访
2016/12/10 DOTA
python opencv实现任意角度的透视变换实例代码
2018/01/12 Python
pyqt5 tablewidget 利用线程动态刷新数据的方法
2019/06/17 Python
python GUI模拟实现计算器
2020/06/22 Python
python 获取字典特定值对应的键的实现
2020/09/29 Python
美国高街时尚品牌:OASAP
2016/07/24 全球购物
德国最大的设计师鞋网上商店:Budapester
2017/12/07 全球购物
俄罗斯第一家篮球店:StreetBall
2020/07/30 全球购物
Java多态性的定义以及类型
2014/09/16 面试题
总经理助理岗位职责
2013/11/08 职场文书
应届大学生求职信
2013/12/01 职场文书
数学教学随笔感言
2014/02/17 职场文书
第二批党的群众路线教育实践活动总结报告
2014/10/30 职场文书
2014年服务员个人工作总结
2014/12/23 职场文书
2016年优秀团支部事迹材料
2016/02/26 职场文书
Python实现批量自动整理文件
2022/03/16 Python