Help with cPickle for deserializing datetime.datetime instances

M

Mingus Tsai

Hello- please help with unpickling problem:

I am using Python version 2.3.4 with IDLE version 1.0.3 on a Windows
XPhome system.

My problem is with using cPickle to deserialize my pickled arrays of
datetime.datetime instances. The following is the code I have written:

import cPickle, datetime
import Numeric

#the file below contains a serialized dict with arrays of datetime
#objects. When these three statements run, the IDLE crashes!

input1 = open('tsm2_outa','r')
time1 = cPickle.load(input1)
input1.close()

#the file below contains serialized dict with arrays of built-in objects
#it unpickles without any problem, when I omit the above unpickling
#operation.

input2 = open('tsm2_outb','rb')
data1 = cPickle.load(input2)
input2.close()

My guess is that I need to somehow tell the pickle.load command that it
is loading datetime instances, but I have no idea how to do this. Any
help would be much appreciated.

Thanks,
Ming
 
H

Hans Georg Krauthaeuser

Mingus said:
Hello- please help with unpickling problem:

I am using Python version 2.3.4 with IDLE version 1.0.3 on a Windows
XPhome system.

My problem is with using cPickle to deserialize my pickled arrays of
datetime.datetime instances. The following is the code I have written:

import cPickle, datetime
import Numeric

#the file below contains a serialized dict with arrays of datetime
#objects. When these three statements run, the IDLE crashes!

input1 = open('tsm2_outa','r')
time1 = cPickle.load(input1)
input1.close()

#the file below contains serialized dict with arrays of built-in objects
#it unpickles without any problem, when I omit the above unpickling
#operation.

input2 = open('tsm2_outb','rb')
data1 = cPickle.load(input2)
input2.close()

My guess is that I need to somehow tell the pickle.load command that it
is loading datetime instances, but I have no idea how to do this. Any
help would be much appreciated.

Thanks,
Ming
How did you wrote the pickle-file. If you used mode 2 you have to open
the file with mode "rb", as you did for the other pickle file.

Hans
 
M

Mingus Tsai

Hans said:
How did you wrote the pickle-file. If you used mode 2 you have to open
the file with mode "rb", as you did for the other pickle file.

Hans

here's the code from my pickling:
#dict of arrays of datetime objects
export1 = {'gagetime':gagednt2ar,'gagetime_offset':gagednt2_offsetar,
'tektime_lagb':mdntmar,'tektime':mdntzar,'tektime_lagf':mdntpar}

#dict of arrays of built-in objects
datamat = {'az':azrowfar,'el':elrowfar,'tekrange_lagb':mtmt,
'tekrange':mtzt,'tekrange_lagf':mtpt,'teksig_lagb':mvmt,
'teksig':mvzt,'teksig_lagf':mvpt,'gagerange':gagerange,
'gagesig':gagesig}

time_out = open('tsm2_outa','w')
cPickle.dump(export1,time_out)
time_out.close()

data_out = open('tsm2_outb','wb')
cPickle.dump(datamat,data_out,1)
data_out.close()

------ So, you can see that the first dict is pickled in ascii (those
arrays are pretty small), but the second dict (the one that i have no
problem unpickling) is pickled in binary. However, I have tried both
ascii and binary for the frist dict, but both crash the IDLE. I don't
understand how pickling works with non built-in objects--is it necessary
for me to tell it that I have datetime objects and how do i do that?

Or perhaps there's something entirely different happening?

much obliged, Ming
 
M

Mingus Tsai

Peter said:
Mingus Tsai wrote:




Is there a traceback that you can provide (cut and paste)?

Peter

It is a hard crash, so there is no traceback. Instead, a dialog window
pops up and gives the standard windows xp response to a program that has
crashed. I then click restart in the box and the IDLE does a restart
and is back to normal, but no traceback...

cheers,
Ming
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,744
Messages
2,569,484
Members
44,903
Latest member
orderPeak8CBDGummies

Latest Threads

Top