大纲

  • 详细说明
  • 错误定位
  • 问题解决
  • 需要注意的类似问题
    • TypeError: a bytes-like object is required, not 'str'

详细说明

在跑网上代码的时候出现了这个错误

PicklingError: args[0] from __newobj__ args has the wrong class

用了很长时间终于解决该问题,下面详细说一下。

由于跑的代码是几年前的老代码了,当时原作者使用的是python2.x版本。我则依旧使用python3.x。代码的转换也是用了一个下午,后来才发现,python自带转换方法。如下

2to3 -w ***.py

但是转换也只能转换一些简单地基础的语法问题,比如print,所以后续也一直磕磕绊绊的改代码来跑。
出现错误的时候大概也知道是py2和py3不兼容的问题,在国外社区发现了类似问题,根源大概是因为

python3中的pickle.dumps,它返回字节,而在python2中,它返回str。

后来也证实该问题在py2.7下该错误不存在,而py3下存在该错误。

错误定位

tensorflow内置的preprocessing.VocabularyProcesso函数
一般我们在进行文本处理时,需要写方法建立词汇表和word到idx,以及idx到word的映射关系,这就需要统计词汇表中的所有单词并建立相应的词典。

问题解决

将self去掉。
该文件通常在你的项目里面被命名为preprocess.py,可以参考下面这个找到对应位置,进行修改。

需要注意的类似问题

TypeError: a bytes-like object is required, not ‘str’

报错原因:
python3和Python2在套接字返回值解码上有区别。可以使用encode(),decode()做切换

  • str通过encode()方法可以编码为指定的bytes;
  • 把bytes变为str,就需要用decode()方法;

PicklingError: args[0] from __newobj__ args has the wrong class相关推荐

  1. 类里面装饰器的使用,args[0]=self

    针对函数和类单独写装饰器可以理解了,请参考往期文档. 之前写了一个类,然后想把装饰器实现的函数也写在类里面,在类方法加上装饰器,之前一直报错. 现在解决了,就是类里面的参数第一个self,所以一定要注 ...

  2. Zookeeper服务器动态上下线idea上server类中server.regist(args[0])数组越界解决

    Zookeeper服务器动态上下线idea上server类中server.regist(args[0])数组越界解决 运行server服务类时报错:Exception in thread"m ...

  3. python args kwargs_Python中的args和kwargs

    有时,你会看到python中定义函数的时候带有两个奇怪的参数:*args.**kwargs.如果你曾经想知道它们是干什么的,或者想知道你的IDE为什么在main()函数中定义它们,那么本文可以帮助到你 ...

  4. python args kwargs 理解_*args和**kwargs在python中的作用

    我发现PYTHON新手在理解*args和**kwargs这两个魔法变量的时候有些困难.他们到底是什么呢? 首先,我先告诉大家一件事情,完整地写*args和**kwargs是不必要的,我们可以只写*和* ...

  5. java args用法_Java中args参数数组的用法说明代码

    本篇文章小编给大家分享一下Java中args参数数组的用法说明代码,文章代码介绍的很详细,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看. main方法args参数用于接收用户 ...

  6. 使用Multiprocessing.process时出现PicklingError解决方法

    这里写自定义目录标题 问题 原因 解决办法 问题 在使用Flask作为Electron程序的后端框架时,在Falsk主程序中使用Multiprocessing的process函数来创建一个新的进程,p ...

  7. BlogEngine 1.0中的编码问题及解决方案

    似乎有不少朋友在下在BlogEngine 1.0的源代码之后会发现居然无法正确编译,因为{SiteRoot}\User Controls\CommentView.cs里的代码遇到了错误: public ...

  8. 贝叶斯网络结构学习之K2算法(基于FullBNT-1.0.4的MATLAB实现)

    题目:贝叶斯网络结构学习之K2算法(基于FullBNT-1.0.4的MATLAB实现) 有关贝叶斯网络结构学习的一基本概念可以参考:贝叶斯网络结构学习方法简介 有关函数输入输出参数的解释可以参考:贝叶 ...

  9. Android 10.0 系统启动之SystemServer进程-[Android取经之路]

    摘要:上一节讲解了Zygote进程的整个启动流程.Zygote是所有应用的鼻祖.SystemServer和其他所有Dalivik虚拟机进程都是由Zygote fork而来.Zygote fork的第一 ...

最新文章

  1. 栈和堆的区别(转 知乎)
  2. 转载几个和职业建议相关的文章
  3. insert数据时,获取插入数据的id
  4. 数字变化滚动到指定数字的文字特效
  5. Matlab 条形图实例
  6. 机器学习-特征处理/归一化/标准化/降维03
  7. 在FF与IE中使用数据岛
  8. 第一章 Shiro简介——《跟我学Shiro》
  9. 一篇文章快速搞懂C++生成随机数
  10. 架构师的第一步:学习两种抽象视角(Abstraction View)
  11. 山西煤炭职业技术学院计算机信息管理,山西煤炭职业技术学院计算机信息系
  12. 封装JedisClient.提供API实现对redis的操作
  13. ndarray负值统一置0,正数不变
  14. 五、瞰景Smart3D空三解算
  15. 【网站源码】3D元素周期表源码
  16. 从四面体数据中提取表面
  17. 以网易云为例,使用审查元素(开发者选项)获取音乐资源
  18. pandoc 使用方法
  19. 【Proteus仿真】Arduino UNO利用Stepper库实现uln2003驱动步进电机转动
  20. oracle ora 604,ORA-01092:ORACLE实例终止,强制断开连接 ORA 00704 00604 00942

热门文章

  1. 在家办公的你,工位是什么样的?
  2. AI大模型创业:诸神之战,凡人无缘?
  3. 十天英语四级就能过?慎重考虑~~
  4. XYNUOJ +-字符串 酒馆浪人的博客
  5. 百度飞桨第一课|让人拍案叫绝的创意都是如何诞生的?
  6. 苏沪世茂全构筑发展新思维,打造赋有温度的宜居社区
  7. ShaderJoy —— Film Burn (炫光光晕)效果【GLSL】
  8. optris PI450 ros版在ubuntu下的安装
  9. 程序员脱单秘籍 | 我跟JVM搞对象!【深度剖析对象的创建和内存分配】
  10. linux 操作系统的基本指令