精华内容
下载资源
问答
  • python中bytes类型转换为str类型

    千次阅读 2019-02-21 14:41:00
    使用的原因:基于URL解析报文的时候,要使用str类型,但是提供的确实bytes类型,报错:TypeError: must be str, not bytes所以就把bytes类型转换为str类型汇总下,以便日后查看bytes1 = b'Hello my world' ...

    使用的原因:基于URL解析报文的时候,要使用str类型,但是提供的确实bytes类型,报错:

    TypeError: must be str, not bytes

    所以就把bytes类型转换为str类型汇总下,以便日后查看
    bytes1 = b'Hello my world'
    str1 = 'Hello my world'
    print(type(bytes1))
    print(type(s1))
    
    # bytes类型转换为str类型
    # 方法1: str()函数
    str2 = str(bytes1, encoding="utf-8")
    print(str2)
    print(type(str2))
    
    # 方法2: bytes.decode()函数
    str3 = bytes.decode(bytes1)
    print(str3)
    print(type(str3))
    结论,通过两种发杠均可将bytes转换为str:
    <class 'bytes'>
    <class 'str'>
    Hello my world
    <class 'str'>
    Hello my world
    <class 'str'>

    转载于:https://www.cnblogs.com/pinpin/p/10412421.html

    展开全文
  • 数字货币交易,从交易所获取的数据是bytes类型。这个并不常见。 常见的Python标准数据类型有六种: Number(数字)—不可变数据 int float bool complex String(字符串)—不可变数据 ‘str’ “str” \转义...
    • 问题背景

    数字货币交易,从交易所获取的数据是bytes类型。这个并不常见。

    常见的Python标准数据类型有六种:

    1. Number(数字)—不可变数据
      1. int
      2. float
      3. bool
      4. complex
    2. String(字符串)—不可变数据
      1. ‘str’
      2. “str”
      3. \转义特殊字符
    3. List(列表)—可变数据
      1. [a, b, c]
    4. Tuple(元组)—不可变数据
      1. (1, b)
    5. Set(集合)—可变数据
      1. {‘a’, ‘b’, ‘c’}
    6. Dictionary(字典)—可变数据
      1. {‘key’:‘value’}
    • 问题解答

    <class ‘bytes’>

    bytes表示字节序列,是一个不可变的数据类型,对应的可变形式是bytearray,也就是字节数组。

    这两种数据类型,内存中开辟的存储都是连续的。

    在常用的ASCII、utf-8 和unicode 编码中,像 a 这样一个英文字符,在内存中占一个字节。一个汉字在ASCII和unicode编码里占两个字节,在utf-8 编码中占三个字节。

    一个字节有八位,也就是八个数字,也叫8个bit(二进制) 。

    计算机中的最小储存单位就是bit,bit是二进制的,所以计算机中的数据全都是0和1,没有其他的数字。

    • str与bytes

    python3中,字符串(str)是unicode格式,字节(bytes)包括utf-8,gbk等等。

    网络传输,硬盘保存是以字节格式保存的。

    Bytes 对象是由单个字节作为基本元素(8位,取值范围 0-255)组成的序列,为不可变对象。

    Bytes 对象只负责以二进制字节序列的形式记录所需记录的对象,至于该对象到底表示什么(比如到底是什么字符)则由相应的编码格式(utf-8、gbk…)解码所决定。

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

    bytes是一种比特流,它的存在形式是01010001110这种。我们无论是在写代码,还是阅读文章的过程中,肯定不会有人直接阅读这种比特流,它必须有一个编码方式,使得它变成有意义的比特流,而不是一堆晦涩难懂的01组合。因为编码方式的不同,对这个比特流的解读也会不同.

    字符串类str里有一个==encode()==方法,它是从字符串向比特流的编码过程。

    bytes类型恰好有个==decode()==方法,它是从比特流向字符串解码的过程。除此之外,我们查看Python源码会发现bytes和str拥有几乎一模一样的方法列表,最大的区别就是encode和decode。

    从实质上来说,字符串在磁盘上的保存形式也是01的组合,也需要编码解码。

    总结来说:

    1. 在将字符串存入磁盘和从磁盘读取字符串的过程中,Python自动地帮你完成了编码和解码的工作,你不需要关心它的过程。
    2. 使用bytes类型,实质上是告诉Python,不需要它帮你自动地完成编码和解码的工作,而是用户自己手动进行,并指定编码格式。
    3. Python已经严格区分了bytes和str两种数据类型,你不能在需要bytes类型参数的时候使用str参数,反之亦然。这点在读写磁盘文件时容易碰到。
    • bytes.decode()方法

    decode() 方法以指定的编码格式解码 bytes 对象。默认编码为 ‘utf-8’。

    bytes.decode(encoding=“utf-8”, errors=“strict”)

    .
    .
    .
    2019-01-21 22:22:04写于邹平

    展开全文
  • 以下两个都对 # -*- coding: utf-8 -*- b = bytes('asd',encoding='gbk') # ret = b.decode('u') print(b) # -*- coding: utf-8 -*- b = bytes('asd',encoding='utf-8') # ret = b.decode('u') print(b)

    以下两个都对

    # -*- coding: utf-8 -*-
    b = bytes('asd',encoding='gbk')
    # ret = b.decode('u')
    print(b)
    
    # -*- coding: utf-8 -*-
    b = bytes('asd',encoding='utf-8')
    # ret = b.decode('u')
    print(b)
    
    展开全文
  • 主要介绍了python中bytes和str类型的区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
  • Python 3最重要的新特性之一是对字符串和二进制数据流做了明确的区分。这篇文章主要介绍了Python3中bytes类型转换为str类型的相关知识,需要的朋友可以参考下
  • Python的字符串类型是str,在内存以 Unicode表示,一个字符对应若干个字节。如果要在网络上传输,或者保存到磁盘上,就需要把 str变为以字节...Pythonbytes类型的数据用带b前缀的单引号或双引号表示: x = b'A...

    Python 的字符串类型是 str,在内存中以 Unicode 表示,一个字符对应若干个字节。如果要在网络上传输,或者保存到磁盘上,就需要把 str 变为以字节为单位的 bytes。Python3中,bytes通常用于网络数据传输、二进制图片和文件的保存等等。可以通过调用bytes()生成bytes实例。

    Python 对 bytes类型的数据用带b前缀的单引号或双引号表示:

    x = b'ABC'

    要注意区分 'ABC' 和 b'ABC' ,前者是 str ,后者需要内容显示一样,但 bytes 的每个字符都只占用一个字节。

    以 Unicode 表示 str 通过 encode() 方法可以编码为指定的 bytes,例如:

    ---> bytes
    
    'ABC'.encode('ascii')    # b'ABC'
    '中文'.encode('utf-8')    # b'\xe4\xb8\xad\xe6\96\87' 

    如果我们从网络或磁盘上读取了字节流,那么读到数据就是 bytes 。要把 bytes 变为 str ,就需要用 decode() 方法:

    -->str
    
    b'ABC'.decode('ascii')    # 'ABC'
    b'\xe4\xb8\xad\xe6\x96\x87'.decode('utf-8')    # 中文

    如果 bytes 中包含无法解码的字节,decode() 方法会报错。

    bytes 中只有一小部分无效的字节,可以传入 errors='ignore' 忽略错误的字节:

    b'\xe4\xb8\xad\xe6\x96\x87'.decode('utf-8', error='ignore')   

    本文参考于以下两篇博客文章:

    http://www.360doc.com/content/18/0911/23/54508727_785822723.shtml

    https://www.cnblogs.com/R-bear/p/7744454.html

     

    展开全文
  • 内存,或者是磁盘的 一组 二进制数据, 比如 b’\xe4\xb8\xad\xe6\x96\x87’ 按照 ‘utf-8’ 解析,decode ,解码,是字符串’中文’ 按照 ‘gbk’ 解析,decode 解码,是另外的 字符串 同样一个二进制数据 ,根据解读...
  • Python中str类型与bytes类型之间的转换

    千次阅读 2018-03-12 11:10:01
    定义一个str型:a1='simwhale'定义一个bytes型:a2=b'simplewhale'str---&gt;bytes:b1=bytes(a1,encoding='utf8')type(b1)输出结果:bytesbytes---&gt;str:b2=str(a2,encoding='utf-8')type(b2)输出结果:str....
  • python3str和bytes分开了,那么bytes与str之间到底是什么关系呢?下面从表现形式、处理方式、存储形式三个...2 b1 = b"hello" # 前面加上b让它变成bytes类型 3 print(s1) 4 print(b1) 输出 s1 = "hello...
  • python中bytes、bytearray

    千次阅读 2019-04-02 20:52:25
    python3引入两个新类型 bytes:不可变字节序列 byterarray:字节数组,可变 字符串与bytes 字符串是字符组成的有序序列,字符可以使用编 码来理解 bytes是字节组成的有序的不可变序列 bytearray是字节...
  • Python bytes数据类型

    2018-04-10 20:53:00
    二进制数据由bytes类型表示(如视频文件). Python3不会以任意隐式的方式滥用str和bytes,所以不能拼接字符串和字节包.也无法在字节包里搜索字符串(反之亦然),也不能将字符串传入参数为字节包的函数(反之亦然). ...
  • Python3以后,字符串和bytes类型彻底分开了。字符串是以字符为单位进行处理的,bytes类型是以字节为单位处理的。 不同的编码规则,字符占不同的字节,ascii Unicode utf-8 八位是一个字节 bytes数据类型在所有的...
  • 文本总是Unicode,由str类型表示,二进制数据则由bytes类型表示。Python 3不会以任意隐式的方式混用str和bytes,你不能拼接字符串和字节流,也无法在字节流里搜索字符串(反之亦然),也不能将字符串传入参数为字节...
  • python中str和bytes类型

    2021-04-15 03:03:17
    https://www.cnblogs.com/chownjy/p/6625299.html https://www.cnblogs.com/mlgjb/p/7899534.html
  • bytesPython 3.x 新增的类型,在 Python 2.x 是不存在的。 字节串(bytes)和字符串(string)的对比: 字符串由若干个字符组成,以字符为单位进行操作;字节串由若干个字节组成,以字节为单位进行操作。 ...
  •  bytes类型和str类型在呈现形式有相同之处,如果你print一个bytes类型的变量,会打印一个用b开头,用单引号括起来的序列。比如:  >>> c = b'\x80abc' >>> type(c) bytes  我们看到c ...
  • python很多数据都是bytes格式的,经常需要转换成int或者short,笔者实际项目有需求,这里就做个笔记吧。 实例一: bytes转short:(无符号类型) import struct barray = b'\x00\xfe\x4b\x00\x4b\x00' count = len...
  • python3 中bytes和str类型

    2018-06-05 15:00:45
    文本总是Unicode,由str类型表示,二进制数据则由bytes类型表示。Python 3不会以任意隐式的方式混用str和bytes,你不能拼接字符串和字节流,也无法在字节流里搜索字符串(反之亦然),也不能将字符串传入参数为字...
  • python3 中bytes与str类型

    2018-02-15 16:51:00
    二进制则是由bytes类型表示,用于存储和传输。bytes是byte的序列,而str是unicode的序列。Python3不会以任意隐式的方式混用str和bytes,不能拼接字符串和字节流,也无法在字节流里搜索字符串(反之亦然)。也不能将...
  • python中bytes,str类型, 以及编码解码

    千次阅读 2019-04-10 18:53:21
    文章目录python中bytes,str类型, 以及编码解码 python中bytes,str类型, 以及编码解码 python3中有bytes和string类型 bytes主要是给在计算机看的,string主要是给人看的 中间有个桥梁就是编码规则,现在大趋势...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,119
精华内容 447
关键字:

python中bytes类型

python 订阅