pickle broken: can't handle NaN or Infinity under win32
Grant Edwards
grante at visi.com
Tue Jun 21 19:18:08 EDT 2005
On 2005-06-21, Grant Edwards <grante at visi.com> wrote:
> I finally figured out why one of my apps sometimes fails under
> Win32 when it always works fine under Linux
[...]
Oh, I forgot, here's pickletest.py:
#!/usr/bin/python
import pickle
f1 = (1e300*1e300)
f2 = f1/f1
o = (f1,f2)
s = pickle.dumps(o)
d = pickle.loads(s)
print o,d
> $ python pickletest.py
> (inf, nan) (inf, nan)
> Under Win32:
>
> $ python pickletest.py
> Traceback (most recent call last):
> File "pickletest.py", line 8, in ?
> d = pickle.loads(s)
> File "C:\PYTHON23\lib\pickle.py", line 1394, in loads
> return Unpickler(file).load()
> File "C:\PYTHON23\lib\pickle.py", line 872, in load
> dispatch[key](self)
> File "C:\PYTHON23\lib\pickle.py", line 968, in load_float
> self.append(float(self.readline()[:-1]))
> ValueError: invalid literal for float(): 1.#INF
--
Grant Edwards grante Yow! Here I am in 53
at B.C. and all I want is a
visi.com dill pickle!!
More information about the Python-list
mailing list