Python3中bytes类型转换为str类型

Python 3最重要的新特性之一是对字符串和二进制数据流做了明确的区分。文本总是Unicode,由str类型表示,二进制数据则由bytes类型表示。Python 3不会以任意隐式的方式混用str和bytes,你不能拼接字符串和字节流,也无法在字节流里搜索字符串(反之亦然),也不能将字符串传入参数为字节流的函数(反之亦然)。

问题背景

基于URL解析报文的时候,URL链接出现str类型+bytes类型是报错TypeError,如何解决这个问题呢?

解决方案

方法一:利用str函数

方法二:利用bytes.decode()进行解码

测试代码如下:

# -*- coding: utf-8 -*-
"""
Created on Wed Sep 26 10:13:07 2018

任务:Python3 bytes类型转换为str类型

@author: 数据人陆勤
"""
b1 = b'Hello'
s1 = 'Hello'
print(type(b1))
print(type(s1))
# bytes类型转换为str类型
# 方法1 str()函数
s2 = str(b1, encoding="utf-8")
print(s2)
print(type(s2))
# 方法2 bytes.decode()函数
s3 = bytes.decode(b1)
print(s3)
print(type(s3))

测试结果如下:

总结

以上所述是小编给大家介绍的Python3中bytes类型转换为str类型,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!

(0)

相关推荐

  • 浅析Python 3 字符串中的 STR 和 Bytes 有什么区别

    Python2的字符串有两种:str和Unicode,Python3的字符串也有两种:str和Bytes.Python2的str相当于Python3的Bytes,而Unicode相当于Python3的Bytes. Python2里面的str和Unicode是可以混用的,在都是英文字母的时候str和unicode没有区别. 而Python3严格区分文本(str)和二进制数据(Bytes),文本总是Unicode,用str类型,二进制数据则用Bytes类型表示,这样严格的限制也让我们对如何使用它们有

  • 详解python string类型 bytes类型 bytearray类型

    一.python3对文本和二进制数据做了区分.文本是Unicode编码,str类型,用于显示.二进制类型是bytes类型,用于存储和传输.bytes是byte的序列,而str是unicode的序列. str类型: >>> s = u'你好' >>> s '你好' >>> type(s) <class 'str'> bytes类型: >>> b = b'abc' >>> b b'abc' >>&

  • Python3中内置类型bytes和str用法及byte和string之间各种编码转换 问题

    Python 3最重要的新特性大概要算是对文本和二进制数据作了更为清晰的区分.文本总是Unicode,由str类型表示,二进制数据则由bytes类型表示.Python 3不会以任意隐式的方式混用str和bytes,正是这使得两者的区分特别清晰.你不能拼接字符串和字节包,也无法在字节包里搜索字符串(反之亦然),也不能将字符串传入参数为字节包的函数(反之亦然). python3.0中怎么创建bytes型数据 bytes([1,2,3,4,5,6,7,8,9]) bytes("python"

  • python3中bytes和string之间的互相转换

    前言 Python 3最重要的新特性大概要算是对文本和二进制数据作了更为清晰的区分.文本总是Unicode,由str类型表示,二进制数据则由bytes类型表示.Python 3不会以任意隐式的方式混用str和bytes,正是这使得两者的区分特别清晰.你不能拼接字符串和字节包,也无法在字节包里搜索字符串(反之亦然),也不能将字符串传入参数为字节包的函数(反之亦然). python3.0中怎么创建bytes型数据 bytes([1,2,3,4,5,6,7,8,9]) bytes("python&qu

  • python中bytes和str类型的区别

    经过一上午的查找资料.大概理清楚了bytes类型和str类型的区别. bytes类型和str类型在呈现形式有相同之处,如果你print一个bytes类型的变量,会打印一个用b开头,用单引号括起来的序列.比如: >>> c = b'\x80abc' >>> type(c) bytes 我们看到c = b'\x80abc'表示的就是一个bytes类型.是不是和字符串很像?只是前面多出来一个b.那b'\x80abc的含义是什么呢?\x80即16进制的两位数,代表十进制的0-2

  • 对Python3中bytes和HexStr之间的转换详解

    在Python操作数据内容时,多数情况下可能遇到下面3种类型的数据处理: hexstring 如:'1C532145697A8B6F' str 如:'\x1C\x53\x21\x45\x69\x7A\x8B\x6F' list 如:[0x1C, 0x53, 0x21, 0x45, 0x69, 0x7A, 0x8B, 0x6F] 各种第三方模块(如pyDes),或者自己写的接口中,可能存在由于类型不统一需要在这3种数据中来回切换的情况. 需要用到的核心的方法如下: list() 将对象转换为lis

  • Python3中的bytes和str类型详解

    Python 3最重要的新特性之一是对字符串和二进制数据流做了明确的区分.文本总是Unicode,由str类型表示,二进制数据则由bytes类型表示.Python 3不会以任意隐式的方式混用str和bytes,你不能拼接字符串和字节流,也无法在字节流里搜索字符串(反之亦然),也不能将字符串传入参数为字节流的函数(反之亦然). 下面让我们深入分析一下二者的区别和联系. 编码发展的历史 在谈bytes和str之前,需要先说说关于编码是如何发展的.. 在计算机历史的早期,美国为代表的英语系国家主导了整

  • Python3中bytes类型转换为str类型

    Python 3最重要的新特性之一是对字符串和二进制数据流做了明确的区分.文本总是Unicode,由str类型表示,二进制数据则由bytes类型表示.Python 3不会以任意隐式的方式混用str和bytes,你不能拼接字符串和字节流,也无法在字节流里搜索字符串(反之亦然),也不能将字符串传入参数为字节流的函数(反之亦然). 问题背景 基于URL解析报文的时候,URL链接出现str类型+bytes类型是报错TypeError,如何解决这个问题呢? 解决方案 方法一:利用str函数 方法二:利用b

  • Python3中的bytes类型和str类型

    目录 前言: 编码发展的历史 bytes和str之间的异同 前言: Python 3最重要的新特性之一是对字符串和二进制数据流做了明确的区分.文本总是Unicode,由str类型表示,二进制数据则由bytes类型表示.Python 3不会以任意隐式的方式混用str和bytes,你不能拼接字符串和字节流,也无法在字节流里搜索字符串(反之亦然),也不能将字符串传入参数为字节流的函数(反之亦然). 下面让我们深入分析一下二者的区别和联系. 编码发展的历史 在谈bytes和str之前,需要先说说关于编码

  • java中long数据类型转换为int类型

    由int类型转换为long类型是向上转换,可以直接进行隐式转换,但由long类型转换为int类型是向下转换,可能会出现数据溢出情况: 主要以下几种转换方法,供参考: 一.强制类型转换 long ll = 300000; int ii = (int)ll; 二.调用intValue()方法 long ll = 300000; int ii= new Long(ll).intValue(); 三.先把long转换成字符串String,然后在转行成Integer long ll = 300000; i

  • javaScript把其它类型转换为Number类型

    一:基本类型 字符串 把字符串转换为数字,只要字符串中包含任意一个非有效数字字符(第一个点除外)结果都是NaN,空字符串会变为数字零 console.log(Number("12.5")); //12.5 console.log(Number("12.5px")); //NAN console.log(Number("12.5.5px"));//NAN console.log(Number(""));//0 布尔 consol

  • java 实现将Object类型转换为int类型

    如何将Object类型转换为int类型 Object object = null; try { Integer.parseInt(object.toString()); } catch (NumberFormatException e) {} 也可以先判定一下是否是Integer //可以先判定一下是否是Integer Object object = "111"; if (object instanceof Integer) { Integer.parseInt(object.toSt

  • sql将时间类型转换为字符串类型汇总

    日期时间转字符串 复制代码 代码如下: Select CONVERT(varchar(100), GETDATE(), 0): 05 16 2006 10:57AM Select CONVERT(varchar(100), GETDATE(), 1): 05/16/06 Select CONVERT(varchar(100), GETDATE(), 2): 06.05.16 Select CONVERT(varchar(100), GETDATE(), 3): 16/05/06 Select C

  • 深入浅析python3中的unicode和bytes问题

    最近写了一些python3程序,四处能看到bytes类型,而它并不存在于python2中,这也是python3和python2显著区别之一. 以前在写python2代码的时候,经常会遇到很多编码报错的异常,原因在于python2对unicode的支持不是特别理想.而在python3中,所有编写的代码都是unicode,python解析器在运行的时候,内部都转换(除非你显示定义为bytes类型)为unicode,减少了出错的可能性. 在python3中,有两种字符串类型,默认的就是str,即uni

随机推荐