Python数据转换

1、ascii字符串转bytearray(byte数组)

说明
ascii: ‘ab’ -> bytes: b’ab’同列表[97,98]

# 举例:
str = 'ab'  
str_array = str.encode()  
print(str_array[0])  
print(str_array)
# 结果:
string_data = ‘sned_data’
bytearray_data = string_data.encode()

2、bytearray转string

注:encode()和decode()要组合使用,只有encode()之后才能使用decode();

# 举例:
print('ab'.encode())  
print(type('ab'.encode()))  
print('ab'.encode().decode('utf-8'))  
print(type('ab'.encode().decode('utf-8')))
# 结果:
b'ab'
<class 'bytes'>
ab
<class 'str'>

3、ascii hex字符串转ascii字符串

‘61’->‘a’
bytes.fromhex(‘61’)

# 举例:
str = '61'  
byte_array = bytes.fromhex('61')  
print(type(byte_array))  
print(byte_array[0])  
print(byte_array)
# 结果:
<class 'bytes'>
97        # 打印[]形式的单个字节时显示具体的值
b'a'     # 打印整个bytes时以b'形式显示

4、list列表转bytes数组

# 举例:
byte_array = [0x0a,0x0b,2,3]  
byte_out = bytes(byte_array)  
print(type(byte_array))  
print(byte_array)  
print(type(byte_out))  
print(byte_out)  
print(byte_out[1])
# 结果:
<class 'list'>
[10, 11, 2, 3]
<class 'bytes'>
b'\n\x0b\x02\x03'
11

5、str十六进制数字字符串转int数字

b’'为bytes类型
‘’为str类型

# 举例
str_in = '3132' # b'3132'同'3132'效果一样  
int_out = int(str_in,10)  # 将十进制字符串转成int数字
print(int_out)  
print(type(int_out))  
str_in = '3132'  # '0x3132',b'3132',b'0x3132'同'3132'效果一样  
int_out = int(str_in, 16)  # 将十六进制字符串转成int数字
print(int_out)  
print(type(int_out))
# 结果
3132
<class 'int'>
12594    # 十六进制为0x3132
<class 'int'>

6、ascii字符转int数字

# 举例
str_in = '1'  
print(type(str_in))  
int_out = ord(str_in)  
print(int_out)  
print(type(int_out))
# 结果
<class 'str'>
49
<class 'int'>

7、hex字符串转int数字

# 举例
str_in = '49'  
print(type(str_in))  
int_out = int(str_in)  # 也可使用该方式int(str_in[a:b])截图字符串
print(int_out)  
print(type(int_out))
# 结果
<class 'str'>
49
<class 'int'>

8、int数字转对应ascii字符

# 举例
int_in = 0x31  
chr_out = chr(int_in)  
print(chr_out)  
print(type(chr_out))
# 结果
1
<class 'str'>

9、int数字转十进制数ascii字符串

# 举例
int_in = 49  
print(type(int_in))  
str_out = str(int_in)  
print(str_out)  
print(type(str_out))
# 结果
<class 'int'>
49
<class 'str'>

10、int数字转str十六进制数字字符串

b’'为bytes类型
‘’为str类型

# 举例
int_in = 31  
str_out = hex(int_in)  
print(str_out)  
print(type(str_out))
# 结果
0x1f
<class 'str'>

11、int数字转bin字符串

# 举例
int_in = 0x31  
print(type(int_in))  
bin_out = bin(int_in)  
print(bin_out)  
print(type(bin_out))
# 结果
<class 'int'>
0b110001
<class 'str'>

12、bin字符串或者byte转int数字

b’'为bytes类型
‘’为str类型

# 举例
bin_in1 = b'010101'     # b'010101'、'0b010101'同'010101'效果一样  
bin_in2 = '010101'  
bin_in3 = '0b010101' 
print(type(bin_in1))  
print(type(bin_in2))  
print(type(bin_in3))  
int_out = int(bin_in1,2)  
print(int_out)  
print(type(int_out))
# 结果
<class 'bytes'>
<class 'str'>
<class 'str'>
21
<class 'int'>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值