2014-01-29 2 views
1

Я пытаюсь использовать травление, и я не могу. Кажется, я делаю что-то неправильно. Что это? (С использованием Python 2.7)Ошибка при рассылке Python при использовании base64encoding

In [2]: import cPickle as pickle 

In [3]: arr = [] 

In [4]: tuple = ('name', 'surname', 'addr', 'area') 

In [5]: arr.append(tuple) 

In [6]: pickled_data=pickle.dumps(arr).encode("base64") 

In [7]: pickled_data 
Out[7]: 'KGxwMQooUyduYW1lJwpTJ3N1cm5hbWUnClMnYWRkcicKUydhcmVhJwp0cDIKYS4=\n' 

In [8]: new_arr = pickle.loads(pickled_data).decode("base64") 
--------------------------------------------------------------------------- 
UnpicklingError       Traceback (most recent call last) 
----> 1 new_arr = pickle.loads(pickled_data).decode("base64") 

UnpicklingError: invalid load key, 'x'. 

ответ

5

Оно должно быть:

new_arr = pickle.loads(pickled_data.decode("base64")) 

Сначала вы декодировать base64, затем unpickle его.

+0

oops ... спасибо! – xpanta

Смежные вопросы