Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何用python2 cPikle读取带有python3泡菜的序列化数据?

如何用python2 cPikle读取带有python3泡菜的序列化数据?
EN

Stack Overflow用户
提问于 2015-11-22 07:08:39
回答 1查看 3.2K关注 0票数 5

我正在尝试使用包含CIFAR-10数据集针对python的特殊版本

它是一组二进制文件,每个文件表示10k numpy矩阵的字典。这些文件显然是由python2 cPickle创建的。

我尝试从python2加载它,如下所示:

代码语言:javascript
运行
AI代码解释
复制
import cPickle
with open("data/data_batch_1", "rb") as f:
    data = cPickle.load(f)

这真的很好用。但是,如果我尝试从python3加载数据(而不是cPickle,而是pickle ),它会失败:

代码语言:javascript
运行
AI代码解释
复制
import pickle
with open("data/data_batch_1", "rb") as f:
    data = pickle.load(f)

如果失败,则出现以下错误:

代码语言:javascript
运行
AI代码解释
复制
UnicodeDecodeError: 'ascii' codec can't decode byte 0x8b in position 6: ordinal not in range(128)

我能否以某种方式将ofiginal数据集转换为从python3中可读的新数据集?或者我可以从python3上读到它吗?

我尝试过用cPickle加载它,将它转储到json中,然后通过pickle读取它,但是numpy矩阵显然不能写成json文件。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-11-22 07:14:58

您需要告诉泡菜要为这些字节串使用什么编解码器,或者告诉它以bytes的形式加载数据。来自文档

编码和错误告诉泡菜如何解码由Python 2腌制的8位字符串实例;这些字符串实例分别默认为‘ASCII’和‘严格’。编码可以是“字节”,将这些8位字符串实例作为字节对象读取。

若要将字符串加载为bytes对象,请执行以下操作:

代码语言:javascript
运行
AI代码解释
复制
import pickle
with open("data/data_batch_1", "rb") as f:
    data = pickle.load(f, encoding='bytes')
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33856283

复制
相关文章
git命令中带有特殊符号如@
使用带用户密码clone的方式: git clone https://username:password@remote 当username和password中含有特殊符号会导致出错, 因为为http的请求,所以需要将特殊符号encode成url格式的 java使用: String c = java.net.URLEncoder.encode(".","utf-8"); System.out.println(c); 源文档 <http://blog.csdn.net/qq1142003960/article/
千往
2018/01/24
2.2K0
Python2 和 Python3 的
最近 Python 之父 Guido van Rossum(龟爷)终于在 Python 官方邮件组落实了 Python 2.7 的终焉之日(EOL)。 说的是 Python 2.7 的 EOL 日期最终确定为 2020 年 1 月 1 日,之后不会有任何更新,包括源码的安全补丁。 所以兼容Python3已经可以说非常必要了,但有些常用的库还没有升级到Python3,所以我们看下如何写出兼容2和3的代码。 Python 2 or 3 ?
py3study
2020/01/02
7990
如何用Python读取开放数据?
当你开始接触丰富多彩的开放数据集时,CSV、JSON和XML等格式名词就会奔涌而来。如何用Python高效地读取它们,为后续的整理和分析做准备呢?本文为你一步步展示过程,你自己也可以动手实践。 需求 人工智能的算法再精妙,离开数据也是“巧妇难为无米之炊”。 数据是宝贵的,开放数据尤其珍贵。无论是公众号、微博还是朋友圈里,许多人一听见“开放数据”、“数据资源”、“数据链接”这些关键词就兴奋不已。 好不容易拿到了梦寐以求的数据链接,你会发现下载下来的这些数据,可能有各种稀奇古怪的格式。 最常见的,是以下
企鹅号小编
2018/03/01
2.7K0
如何用Python读取开放数据?
如何用Python读取开放数据?
当你开始接触丰富多彩的开放数据集时,CSV、JSON和XML等格式名词就会奔涌而来。如何用Python高效地读取它们,为后续的整理和分析做准备呢?本文为你一步步展示过程,你自己也可以动手实践。
王树义
2018/08/22
2K0
如何用Python读取开放数据?
python3 和 python2的区别
Python2中使用 ASCII 码作为默认编码方式导致string有两种类型str 和unicode,Python3只
py3study
2020/01/08
1.6K0
python3 和 python2的区别
python2和python3的区别
1、不等于<>比较运算符,python3不识别,pyhon2.7中!=和<>都能运行。
狼啸风云
2020/01/14
9550
python2和python3的共存
1.安装过程中可以手动选择安装路径,本文中的安装路径为"D:\python2", "D:\python3"。
似水的流年
2021/03/23
3.9K0
Python2监控redis读取速度
1、主要是导入redis模块,如果不存在则执行pip install redis 安装。 #!/usr/bin/env python import redis import time ip='10.12.41.16' password='Tvgpg#cdz' r=redis.Redis(host=ip,password=password,port=16379,db=0) while True: localtime = time.asctime( time.localtime(time.time()) )
院长技术
2021/02/19
8010
python2与python3的区别
说明:标注?????是暂时没遇到且看不懂的,做个标记。常见的区别有print,range,open,模块改名,input,整除/,异常 except A as B
py3study
2020/01/09
1.2K0
Python3与Python2的差异
基于python3浅谈python3与python2的差异。由于现今主流Python3,但是之前用Python2做的项目,还得维护,所以作为python工作者,不免要了解其中差异,其中,Python2 有 ASCII str() 类型,unicode() 是单独的,不是 byte 类型。而 Python3.X 源码文件默认使用utf-8编码,以及一个字节类:byte 和 bytearrays。这就使得以下代码是合法的:
AiDBA宝典
2022/02/22
3830
python3 vs python2
二、python3中是unicode码,而python2中是ascii码,可以避免中文的编码困扰
py3study
2020/01/06
4230
Python3读取Excel数据存入My
利用Python做数据分析,第一步就是学习如何读取日常工作中产生各种excel报表并存入数据中,方便后续数据处理。
py3study
2020/01/13
1K0
由 Python2 和 Python3
这几天在做一个功能实现的时候,需要把别人用 Python2.6 写好的脚步转成 Python3.4 实现,大部分地方转化都没啥问题,但是在 socket.inet_aton() 转化的过程中出了点问题,花费我不少的精力去解决,先做个记录备忘,同时给后续需要的人做个提醒。
py3study
2020/01/06
5820
Python3 读取键盘输入数据
Python3 提供了 input() 内置函数从标准输入读入一行文本,默认的标准输入是键盘。input 可以接收一个 Python 表达式作为输入,并将运算结果返回。注意 input 函数从键盘输入中读取一行,将其转换为字符串 str 类型(带末尾的换行符),然后将其返回。实例代码运行结果如下所示。
嵌入式视觉
2022/09/05
2.6K0
Python3 读取键盘输入数据
python3和python2共存
特别说明,本文是在Windows64位系统下进行的,32位系统请下载相应版本的安装包,安装方法类似。 使用python开发,环境有Python2和 python3 两种,有时候需要两种环境切换使用,下面提供详细教程一份。 1、下载python3和python2 进入python官网,链接https://www.python.org/ 选择Downloads--->Windows,点击进入就可以看到寻找想要的python版本 本文选择的是: Python3.5.2,点击后面
似水的流年
2018/01/18
8860
python3和python2共存
Avro序列化&反序列化和Spark读取Avro数据
本篇文章主要讲如何使用java生成Avro格式数据以及如何通过spark将Avro数据文件转换成DataSet和DataFrame进行操作。
Fayson
2018/03/29
4K0
Avro序列化&反序列化和Spark读取Avro数据
从python2到python3
从Python2到Python3需要进行一定的转换,我们知道python版本更新后部分数据结构和语法有了少许的差别,这里简单列出几个,后续会进行更新: 1、print ({}%d.format()) 报错:builtins.AttributeError:'NoneType' object has no attribute 'format'解决: 把.format放在print的括号里面,如下所示: print ("Accuracy:{0}%".format(accuracy)) 2、python3.x 读取
微风、掠过
2018/04/10
7730
点击加载更多

相似问题

数据库兼容性互认证申请?

1280

声卡兼容性?

2375

数据库的密码是什么?

2585

数据库名称是什么?

13.5K

“Mysql数据库健康检查”是什么?

1345
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档