使用 base64encoding 时出现 Python unpickling 错误

标签 python base64 pickle

我正在尝试使用 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'.

最佳答案

应该是:

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

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

关于使用 base64encoding 时出现 Python unpickling 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21429420/

相关文章:

python - 如何使用 Odoo 12 中看板 View 的 default_group_by 字段选择对位置阶段进行排序

javascript - 使用 JavaScript 确定字符串是否为 base64

python - 包含 keras 模型的深度复制类

python - 当无法进行 pickle 时如何进行深层复制

python - 这里使用持久性 ID 解决的 pickling 问题是什么?

python - 将 pandas 数据框从一个 jupyter 笔记本复制到另一个的最佳方法是什么

python - 将子流程作为字符串重定向到变量

c++ - 两个独立的进程共享相同的 Camera feed OpenCv

python base64转十六进制

c# - 在使用 C# 解码 Base64 字符串之前是否删除数据 :image/jpeg;base64, ?