如何在Ipython控制台中加载/查看pickle对象的结构? (Windows 7,Spyder,Ipython控制台) [英] How to load/view structure of pickled object in Ipython console ? (Windows 7, Spyder, Ipython console)

查看:382
本文介绍了如何在Ipython控制台中加载/查看pickle对象的结构? (Windows 7,Spyder,Ipython控制台)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在学习其他程序员编写的程序。所以我想查看腌制品的结构。
由于我需要知道pickle数据的结构,我正在尝试使用Spyder在Ipython中加载pickle ...例如:

I am learning the program written by other programmer. So I would like to view the structure of the pickled item. Since I need to know the structure of pickled data, I am trying to load pickle in Ipython using Spyder... e.g.:

import pickle

data1 = {'a': [1, 2.0, 3, 4+6j],
         'b': ('string', u'Unicode string'),
         'c': None}

selfref_list = [1, 2, 3]
#selfref_list.append(selfref_list)

output = open('data.pkl', 'wb')

# Pickle dictionary using protocol 0.
pickle.dump(data1, output)

# Pickle the list using the highest protocol available.
pickle.dump(selfref_list, output, -1)

output.close()

我想知道这里腌制的.pkl文件的结构。

I would like to know the structure of the .pkl file pickled here.

推荐答案

目前尚不清楚你的意思是结构。如果我运行你的代码,我可以这样做:

It's not clear what you mean by structure. If I run your code, I can then do:

In [6]: with open('data.pkl','rb') as f:
   ...:     x = pickle.load(f)
   ...:     y = pickle.load(f)
   ...:     
   ...:     
In [7]: x
Out[7]: {'a': [1, 2.0, 3, (4+6j)], 'b': ('string', 'Unicode string'), 'c': None}
In [8]: y
Out[8]: [1, 2, 3]

我可以使用相同数量的读取来恢复连续写入。如果我试图获得更多,我得到 EOFError:输出

I can recover your successive writes with an equal number of reads. If I try to get more I get a EOFError: Ran out of input.

你想知道什么? ?如何在文件上有任何对象?每个对象的结构? Python对象和文件上的字节之间的转换?

What do you want to know? How any objects there are on the file? The structure of each object? The conversion between Python object and bytes on the file?

这篇关于如何在Ipython控制台中加载/查看pickle对象的结构? (Windows 7,Spyder,Ipython控制台)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆