2012-05-29 1 views
-1

Я новичок в python. У меня есть файл data.pkl. Я хотел бы получить данные из файла. Я посмотрел на пример http://docs.python.org/library/pickle.html, 11.1.7 и попробовал именно это. Мой код выглядит следующим образом:Ошибка при десериализации с пиреней python

import pprint, pickle 

pkl_file = open('data.pkl', 'rb') 

data1 = pickle.load(pkl_file) 
pprint.pprint(data1) 

pkl_file.close() 

Но это дает мне сообщение об ошибке:

Traceback (most recent call last): 
    File "/home/sadiksha/workspace/python/test.py", line 5, in <module> 
    data1 = pickle.load(pkl_file) 
    File "/usr/lib/python2.7/pickle.py", line 1378, in load 
    return Unpickler(file).load() 
    File "/usr/lib/python2.7/pickle.py", line 858, in load 
    dispatch[key](self) 
    File "/usr/lib/python2.7/pickle.py", line 966, in load_string 
    raise ValueError, "insecure string pickle" 

Может кто-нибудь пожалуйста, скажите мне, что я здесь делаю неправильно?

+0

Как вы создали файл data.pkl? – interjay

+0

Это уже было предоставлено мне! –

+0

Ну, как это было создано тем, кто его создал? Вы уверены, что он был маринован и сохранен правильно? – interjay

ответ

1

Кажется, что ваш файл pickle был либо не написан правильно (с указанием «wb»), либо файл был каким-то образом поврежден. Попробуйте создать свой собственный файл рассола и прочитать его обратно. Это должно сделать трюк.

Что касается указанного файла рассола, он определенно поврежден.

+0

Да, вы были правы, файл был поврежден. Он анализировал новую строку как «\ r», которая давала ошибку! –