如何转换酸洗负荷从python2到python3?

2024-04-25 21:40:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试将python2代码转换为python3。我在Python2.7中使用了pickle.loads函数,根据其文档,该函数执行以下操作(https://docs.python.org/2.7/library/pickle.html):

pickle.loads(string)
Read a pickled object hierarchy from a string. Characters in the 
string past the pickled object’s representation are ignored.

但是它在python3(https://docs.python.org/3/library/pickle.html)中的行为发生了变化:

^{pr2}$

在数据库中,我有一个字符串x,它是在python2中执行的pickle.dumps(obj)的输出。我想在python3中检索obj。当我执行pickle.loads(x)操作时,我收到以下错误:

a bytes-like object is required, not 'str'

pickle.loads(x)改为pickle.loads(bytes(x, 'utf-8'))会产生以下错误:

invalid load key, '\x5c'.

在Python3中,如何从x获得{}?在


Tags: the函数httpsorgobjdocsstringobject
1条回答
网友
1楼 · 发布于 2024-04-25 21:40:14

pickle.loads(x)更改为pickle.loads(bytes(x, 'latin-1'))。在

pickle.dumps(o)更改为str(pickle.dumps(o, protocol=0), 'latin-1')。在

相关问题 更多 >