python二进制串转字符串的方法详解

 更新时间:2023年11月04日 09:44:58   作者:惊瑟  
这篇文章主要介绍了python二进制串转字符串的方法详解,使用json,可以自动检测编码,但需要注意的是,它返回的是python对象,不一定是字符串,具体是什么对象要视原始内容而定,需要的朋友可以参考下

一、不含中文

首先明确b'xxx'这种样式的不是字符串类型,而是二进制数据:

In [1]: s = 'hello world'

In [2]: s.encode('ascii')
Out[2]: b'hello world'

In [3]: type(s)
Out[3]: str

In [4]: type(s.encode('ascii'))
Out[4]: bytes

如果不含中文,直接使用str/decode均可,但str出来的多了个b',需要注意:

In [5]: b = s.encode('ascii')

In [6]: b
Out[6]: b'hello world'

In [7]: str(b)
Out[7]: "b'hello world'"

In [8]: b.decode('utf-8')
Out[8]: 'hello world'

二、含有中文

假设得到一个这样的二进制串:

b'\xe5\x93\x88\xe5\x96\xbd'

如果对编码比较熟悉的伙伴直接看出来这是utf-8编码的二进制串,此时直接解码即可:

In [15]: b
Out[15]: b'\xe5\x93\x88\xe5\x96\xbd'

In [16]: b.decode('utf-8')
Out[16]: '哈喽'

假设得到一个这样的二进制串:

b'{"errno":0,"data":[{"k":"\\u5468\\u6770\\u4f26","v":"\\u540d. Jay Chou; The New King of Asian Pop \\u4ee3. \\u65e0\\u4e0e\\u4f26\\u6bd4"}]}'

\u开头稍微有点陌生,但搜索一下可以查到解码方法:

In [17]: b'{"errno":0,"data":[{"k":"\\u5468\\u6770\\u4f26","v":"\\u540d. Jay Cho
    ...: u; The New King of Asian Pop \\u4ee3. \\u65e0\\u4e0e\\u4f26\\u6bd4"}]}'
    ...: .decode('unicode_escape')
Out[17]: '{"errno":0,"data":[{"k":"周杰伦","v":"名. Jay Chou; The New King of Asian Pop 代. 无与伦比"}]}'

三、简便方法

上述方法需要提前知道编码,有一种简便方法:使用json,可以自动检测编码,但需要注意的是,它返回的是python对象,不一定是字符串,具体是什么对象要视原始内容而定:

In [20]: json.loads(b'{"errno":0,"data":[{"k":"\\u5468\\u6770\\u4f26","v":"\\u540d. Jay Chou; The New King of Asian Pop \\u
    ...: 4ee3. \\u65e0\\u4e0e\\u4f26\\u6bd4"}]}')
Out[20]: 
{'errno': 0,
 'data': [{'k': '周杰伦', 'v': '名. Jay Chou; The New King of Asian Pop 代. 无与伦比'}]}

到此这篇关于python二进制串转字符串的方法详解的文章就介绍到这了,更多相关python二进制串转字符串内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 基于Python绘制美观动态圆环图、饼图

    基于Python绘制美观动态圆环图、饼图

    这篇文章主要介绍了基于Python制作美观动态圆环图、饼图,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-06-06
  • python pandas模块基础学习详解

    python pandas模块基础学习详解

    这篇文章主要介绍了python pandas模块基础学习详解的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-07-07
  • python得到单词模式的示例

    python得到单词模式的示例

    今天小编就为大家分享一篇python得到单词模式的示例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-10-10
  • python轮询机制控制led实例

    python轮询机制控制led实例

    这篇文章主要介绍了python轮询机制控制led实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-05-05
  • Python web框架fastapi中间件的使用及CORS跨域问题

    Python web框架fastapi中间件的使用及CORS跨域问题

    fastapi "中间件"是一个函数,它在每个请求被特定的路径操作处理之前,以及在每个响应之后工作,它接收你的应用程序的每一个请求,下面通过本文给大家介绍Python web框架fastapi中间件的使用及CORS跨域问题,感兴趣的朋友一起看看吧
    2024-03-03
  • 解决matplotlib库show()方法不显示图片的问题

    解决matplotlib库show()方法不显示图片的问题

    今天小编就为大家分享一篇解决matplotlib库show()方法不显示图片的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-05-05
  • Python文本统计功能之西游记用字统计操作示例

    Python文本统计功能之西游记用字统计操作示例

    这篇文章主要介绍了Python文本统计功能之西游记用字统计操作,结合实例形式分析了Python文本读取、遍历、统计等相关操作技巧,需要的朋友可以参考下
    2018-05-05
  • Python导入txt数据到mysql的方法

    Python导入txt数据到mysql的方法

    这篇文章主要介绍了Python导入txt数据到mysql的方法,涉及Python操作txt文件及mysql数据库的技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-04-04
  • python批量修改交换机密码的示例

    python批量修改交换机密码的示例

    这篇文章主要介绍了python批量修改交换机密码的示例,帮助大家更好的理解和使用python,感兴趣的朋友可以了解下
    2020-09-09
  • 一文带你了解Python中的枚举(enum)

    一文带你了解Python中的枚举(enum)

    这篇文章一文带你了解Python中的枚举(enum),在Python中,枚举和我们在对象中定义的类变量时一样的,每一个类变量就是一个枚举项,需要的朋友可以参考下
    2023-04-04

最新评论