python中带b字符串转换
问题背景
在使用 dbm 模块中,使用 str 作为 key 进行 kv 存储,但是在进行转换过程中,发现 key 变成了 b'xxxx' 这种类型,在于其他字符串进行比较判断报错,原因是该类型是 bytes 类型,而不是 str 类型
问题原因
- bytes主要是给计算机看的,string主要是给人看的
- 中间有个桥梁就是编码规则,现在大趋势是utf8
- bytes对象是二进制,很容易转换成16进制,例如\x64
- string就是我们看到的内容,例如'abc'
- string经过编码encode,转化成二进制对象,给计算机识别
- bytes经过反编码decode,转化成string,让我们看,但是注意反编码的编码规则是有范围,\xc8就不是utf8识别的范围
解决方案
直接将该bytes类型进行decode()即可
相关主题: