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的json中方法及jsonpath模块用法分析

    python的json中方法及jsonpath模块用法分析

    这篇文章主要介绍了python的json中方法及jsonpath模块用法,结合实例形式分析了Python json相关模块与常见方法使用技巧,需要的朋友可以参考下
    2019-12-12
  • Python中Windows和macOS文件路径格式不一致的解决方法

    Python中Windows和macOS文件路径格式不一致的解决方法

    在 Python 中,Windows 和 macOS 的文件路径字符串格式不一致主要体现在路径分隔符上,这种差异可能导致跨平台代码在处理文件路径时出错,下面我们看看如何解决吧
    2025-03-03
  • Python中的面向接口编程示例详解

    Python中的面向接口编程示例详解

    这篇文章主要给大家介绍了关于Python中面向接口编程的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-01-01
  • 基于Python实现自制CV剪贴板功能

    基于Python实现自制CV剪贴板功能

    云桌面的win10不能调出剪贴板,对于CV工程师来说十分不方便,所以这篇文章主要介绍了如何使用Python实现一个CV剪贴板,提升常用语句的复制粘贴效率,感兴趣的可以了解下
    2024-02-02
  • python将word的doc另存为docx的实现方案

    python将word的doc另存为docx的实现方案

    在 Python 中,你可以使用 python-docx 库来操作 Word 文档,不过需要注意的是,.doc 是旧的 Word 格式,而 .docx 是新的基于 XML 的格式,python-docx 只能处理 .docx 格式,需要的朋友可以参考下
    2025-08-08
  • Pytorch之如何提取模型中的某一层

    Pytorch之如何提取模型中的某一层

    这篇文章主要介绍了Pytorch之如何提取模型中的某一层问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-09-09
  • Python实现登陆文件验证方法

    Python实现登陆文件验证方法

    本篇文章中我们给大家分享了关于Python实现登陆文件验证的方法和技巧,有兴趣的朋友们参考学习下。
    2018-10-10
  • 安装pycurl报错Could not run curl-config: 'curl-config'

    安装pycurl报错Could not run curl-config: &ap

    这篇文章主要为大家介绍了安装pycurl报错Could not run curl-config: 'curl-config'解决方法,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-12-12
  • Python中内存管理机制与优化技巧分享

    Python中内存管理机制与优化技巧分享

    这篇文章主要来和大家简单聊一聊Python中的内存管理,从而可以帮助大家写出更高效,优化内存占用的 Python 代码,感兴趣的小伙伴可以跟随小编一起学习一下
    2025-04-04
  • 学习Django知识点分享

    学习Django知识点分享

    在本篇文章里小编给大家整理的是关于学习Django的一些心得知识点,对此有兴趣的朋友们可以参考下。
    2019-09-09

最新评论