专栏首页桥路_大数据Python3将API返回的bytes解码为str

Python3将API返回的bytes解码为str

前言

在调用API的时候,有些API会返回bytes类型的串,格式如下:

b'{"status":"0","msg":"ok","result":{"type":"google","from":"zh-cn","to":"en","text":"\xe4\xb8\xad\xe5\x9b\xbd",
"result":"China<br \\/><br \\/><strong>\xe5\x90\x8d\xe8\xaf\x8d<\\/strong><br \\/><span class=\\"green\\">China<\\/span> 
\xe4\xb8\xad\xe5\x9b\xbd, \xe5\x8d\x8e, \xe4\xb8\xad\xe5\x8d\x8e<br \\/>"}}'

如果将这种类型的字串直接存入到数据库的话,从数据库中读取出的字串进行操作会出现问题,比如上面的字串直接进行解析的话会直接报错,原因是str存着的实际上是一串没有解码的bytes。所以存入数据库时,要对bytes进行解码的操作。各位看官,详细操作请往下看。

bytes解码

bytes.decode(encoding='utf-8')

注:bytes为要解码的bytes串

bytes编码

S.encode(encoding='utf-8', errors='strict') -> bytes

注:S为str

源码

def decode(self, *args, **kwargs): # real signature unknown
    """
    Decode the bytes using the codec registered for encoding.
    
      encoding
        The encoding with which to decode the bytes.
      errors
        The error handling scheme to use for the handling of decoding errors.
        The default is 'strict' meaning that decoding errors raise a
        UnicodeDecodeError. Other possible values are 'ignore' and 'replace'
        as well as any other name registered with codecs.register_error that
        can handle UnicodeDecodeErrors.
    """
    pass
def encode(self, encoding='utf-8', errors='strict'): # real signature unknown; restored from __doc__
    """
    S.encode(encoding='utf-8', errors='strict') -> bytes
    
    Encode S using the codec registered for encoding. Default encoding
    is 'utf-8'. errors may be given to set a different error
    handling scheme. Default is 'strict' meaning that encoding errors raise
    a UnicodeEncodeError. Other possible values are 'ignore', 'replace' and
    'xmlcharrefreplace' as well as any other name registered with
    codecs.register_error that can handle UnicodeEncodeErrors.
    """
    return b""

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 提了这么多年的面向对象,你真的懂它的含义吗?

    1994 年 Rolling Stone 对乔布斯的采访,乔布斯解释了什么是面向对象编程。

    十里桃花舞丶
  • react native使用WebView加载本地html部署方案

    十里桃花舞丶
  • 【项目实战】ADS 层复购率统计

    ADS 层需要在 DWS 层的数据上计算复购率,并存储结果表。复购率可以从 DWS 层的用户购买商品明细表中进行计算。

    十里桃花舞丶
  • linux下如何优雅的挂载一个外界设备(比如优盘)

            最近从事linux,实验室一个破服务器,能连上网,但是输入这样的命令:        yum -y install gcc yum -y in...

    Gxjun
  • 腾讯云高校AI小程序战疫大赛优秀作品赏析

    2020年的春,一场新冠病毒肺炎席卷全国。为响应抗疫号召,我们都乖乖在家“宅着”。而有一群人,虽不是一线抗疫人员,但为维护全社会的正常运转,他们也在日以继夜地努...

    腾讯云AI中心
  • 哈希表:今天你快乐了么?

    「快乐数」定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和,然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变不到 1。如果 ...

    代码随想录
  • 使用DTLE对MySQL大表做分库分表

    https://actiontech.github.io/dtle-docs-cn/3/3.0_function_scenario_mapping.html

    二狗不要跑
  • 总结:Ubuntu Python2.x和

    环境:刚重装了系统,为Ubuntu16.04 目的:安装Python3.x,本例安装3.5.2 步骤: 1.$ python --version python ...

    py3study
  • 【LeetCode】437. Path Sum III树

    You are given a binary tree in which each node contains an integer value.

    韩旭051
  • PTA 7-1 整数分解为若干项之和(20 分)

    7-1 整数分解为若干项之和(20 分) 将一个正整数N分解成几个正整数相加,可以有多种分解方法,例如7=6+1,7=5+2,7=5+1+1,…。编程求出正整数...

    Kindear

扫码关注云+社区

领取腾讯云代金券