使用base64encoding时出现Python unpickling错误

时间:2014-01-29 11:15:37

标签: python base64 pickle

我正在尝试使用酸洗而我不能。看来我做错了什么。它是什么? (使用python 2.7)

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'.

1 个答案:

答案 0 :(得分:5)

应该是:

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

首先解码base64,然后解开它。