python中类似对象吗_确定对象是否为Python中类似字节的对象的正确方法是什么?...
除非您知道我们不了解的内容,否则此代码是不正确的:
if isinstance(data, bytes):
data = data.decode()
您(似乎)不知道2700705067661001001728的编码。您假设它是UTF-8,但这很可能是错误的。 由于您不知道编码,因此没有文本。 您有字节,在阳光下可能有任何意义。
好消息是,大多数随机字节序列都不是有效的UTF-8,因此,如果中断,它将大声中断(默认为data),而不是默默地做错事。 更好的消息是,碰巧是有效UTF-8的大多数随机序列也都是有效ASCII,(几乎)每个人都同意如何解析。
坏消息是没有解决此问题的合理方法。 提供编码信息的标准方法是:使用data而不是bytes。如果某些第三方代码在没有任何其他上下文或信息的情况下将bytes或bytearray对象交给您,则唯一的正确操作是失败。
现在,假设您知道编码,则可以在此处使用data:
@functools.singledispatch
def foo(data, other_arguments, ...):
raise TypeError('Unknown type: '+repr(type(data)))
@foo.register(str)
def _(data, other_arguments, ...):
# data is a str
@foo.register(bytes)
@foo.register(bytearray)
def _(data, other_arguments, ...):
data = data.decode('encoding')
# explicit is better than implicit; don't leave the encoding out for UTF-8
return foo(data, other_arguments, ...)
这不适用于方法,并且data必须是第一个参数。 如果这些限制对您不起作用,请改用其他答案之一。
python中类似对象吗_确定对象是否为Python中类似字节的对象的正确方法是什么?...相关推荐
- python 结构体数组 定义_一篇文章弄懂Python中所有数组数据类型
前言 数组类型是各种编程语言中基本的数组结构了,本文来盘点下Python中各种"数组"类型的实现. list tuple array.array str bytes bytearr ...
- python中流程图的基本元素_面试干货:成为Python程序员的终极指南!(内附回答)...
科技行业正以前所未有的速度增长.我们看到市场上发布了新的软件产品. 无论您是初学者还是经验丰富的Python开发人员,机会都是非常多的,如何把握?. 唯一的要求:必须在Python编程面试中使用您的技 ...
- python全栈面试题_全栈工程师对Python面试中is和==区别的详细解说!看完真的学到了!...
面试实习生的时候,当问到 is 和 == 的区别时,很多同学都答不上来,搞不清两者什么时候返回一致,什么时候返回不一致.本文我们来看一下这两者的区别. 我们先来看几个例子: a = "hel ...
- python中superclass是什么_深度解析并实现python中的super(转载,好文)
大神半个月的成绩,让我看的叹为观止,建议看原帖地址,会让你对Python的描述符有更强的认识. 原文链接:https://blog.csdn.net/zhangjg_blog/article/deta ...
- python中class什么意思_【转载】在python的class中的,self到底是什么?
答案:self可以理解为一个字典变量,内部存的就是对象的数据属性.如:{'name':'zhang','age':'18'}就是这些. 注意只有数据属性,并没有创建新的类的方法. 类-----> ...
- python的抽象类详解_第7.19节 Python中的抽象类详解:abstractmethod、abc与真实子类...
第7.19节 Python中的抽象类详解:abstractmethod.abc与真实子类 一. 引言 前面相关的章节已经介绍过,Python中定义某种类型是以实现了该类型对应的协议为标准的,而不是以继 ...
- python中拼音怎么用_实用小技巧,Python一秒将汉字转为拼音
大家好,欢迎来到Crossin的编程教室! 有时在处理文件时候,我们需要将中文汉字转换为拼音或者拼音首字母的需求:还有的时候,我们需要对汉字进行按拼音字母排序(汉字的默认排序是编码序而非拼音序).针对 ...
- java对象头_我的并发编程(二):java对象头以及synchronized升级过程
一.概述 研究java对象头的目的是详细分析Java的synchronized锁的升级过程,因为synchronized在锁升级的时候,就是依赖对象头的信息来决定的.本博文针对64位的操作系统来对Ja ...
- python正则怎么取反_第11.19节 Python 中正则表达式的扩展功能:前视断言和前视取反...
一.引言 在<第11.16节 Python正则元字符"()"(小括号)与组(group)匹配模式>中老猿介绍了组匹配模式的命名组功能及引用组功能,这两者都是组模式的扩展 ...
- python中面向对象空间时间_零基础老男孩学Python|面向对象之类的空间问题
一. 类的空间问题 1.1 何处可以添加对象属性class A: def __init__(self,name): self.name = name def func(self,sex): self. ...
最新文章
- Android Application中的Context和Activity中的Context的异同
- ubuntu终端下快捷键,字体放大缩小等【逐渐完善篇】
- pycharm如何安装pythoncard_pycharm的各种设置,配置
- Spring Boot和数据库初始化
- linux-tomcat-install
- php 实现ftp 多文件,php – 使用一个连接读取FTP目录中每个文件的内容
- 《Hadoop权威指南》读书笔记1
- JavaScript函数的两种声明方式,你了解多少?
- 约瑟夫环问题:猴子选大王
- CentOS7搭建FTP文件服务器
- NO.5 计算数组中三个数的最大乘积
- 投资人教你怎么写能拿到钱的商业计划书
- 火山PC编辑框组件详解2
- 《代码整洁之道》第14章 逐步改进 的代码片段
- 游戏设计的236个技巧++游戏机制、关卡设计和镜头窍门pdf
- 苹果Mac更新系统版本失败如何解决?
- 【听】了不起的盖茨比,美国梦的破碎
- 【R语言 | 如何绘制带组内差异比较的柱形图】
- 根据指定时间范围取得对应(第几)周信息,以及一年当中所有周时间范围列表信息(可用于学期第几周,年第几周)
- Django学习笔记(3):使用模型类进行查询(查询函数、F对象、Q对象、聚合函数、查询集、模型类关系、关联查询、自关联、管理器)
热门文章
- Kaggle狗的种类识别竞赛——基于Pytorch框架的迁移学习方法
- 视觉平衡与物理平衡_设计中的视觉平衡
- Mysql动态数据多条件查询
- Deepin/Linux系统使用GUFW可视化管理、配置防火墙规则
- HBase timestamp(version)
- linux挂载分区至目录
- openshift介绍及centos7安装单节点openshift、Redhat安装openshift集群完全教程
- Python Django模板templates渲染及配置
- 图解Hadoop hdfs写数据流程
- Python Django 常用命令:创建迁移文件/数据库建表/创建admin超级用户