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实现对csv文件的列的内容读取

    python实现对csv文件的列的内容读取

    今天小编就为大家分享一篇python实现对csv文件的列的内容读取,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-07-07
  • Python实现爬虫抓取与读写、追加到excel文件操作示例

    Python实现爬虫抓取与读写、追加到excel文件操作示例

    这篇文章主要介绍了Python实现爬虫抓取与读写、追加到excel文件操作,结合具体实例形式分析了Python针对糗事百科的抓取与Excel文件读写相关操作技巧,需要的朋友可以参考下
    2018-06-06
  • Python 文件数据读写的具体实现

    Python 文件数据读写的具体实现

    这篇文章主要介绍了Python 文件数据读写的具体实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-01-01
  • 5款实用的python 工具推荐

    5款实用的python 工具推荐

    工欲善其事必先利其器,一个好的工具能让起到事半功倍的效果,Python 社区提供了足够多的优秀工具来帮助开发者更方便的实现某些想法,下面这几个工具给我的工作也带来了很多便利,推荐给追求美好事物的你。
    2020-10-10
  • 使用NumPy和pandas对CSV文件进行写操作的实例

    使用NumPy和pandas对CSV文件进行写操作的实例

    今天小编就为大家分享一篇使用NumPy和pandas对CSV文件进行写操作的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-06-06
  • python中如何实现链式调用

    python中如何实现链式调用

    这篇文章主要介绍了python中如何实现链式调用,帮助大家更好的理解和学习使用python,感兴趣的朋友可以了解下
    2021-03-03
  • django配置DJANGO_SETTINGS_MODULE的实现

    django配置DJANGO_SETTINGS_MODULE的实现

    本文主要介绍了django配置DJANGO_SETTINGS_MODULE,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-03-03
  • Python编程编写完善的命令行工具

    Python编程编写完善的命令行工具

    提到编写命令行工具,你可能会想到用 sys.argv 或者标准库 argparse,没错,这两个很常用,不过情况复杂时没有那么方便和高效,因此今天分享两个工具,让你编写命令行工具不费吹灰之力
    2021-09-09
  • python操作jira添加模块的方法

    python操作jira添加模块的方法

    在开发工作中,Jira通常用作BUG管理和任务跟踪管理等,项目经理,测试人员,开发人员等在Jira上进行提交BUG,提交任务,修改任务进度等操作.本文重点给大家介绍python操作jira添加模块的方法,感兴趣的朋友一起看看吧
    2022-03-03
  • tensorflow中tf.slice和tf.gather切片函数的使用

    tensorflow中tf.slice和tf.gather切片函数的使用

    今天小编就为大家分享一篇tensorflow中tf.slice和tf.gather切片函数的使用,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-01-01

最新评论