1

假设我有一个字符串“[A,B,C]”,我想将它转换成一个列表 [A,B,C],我用谷歌搜索了一下,我知道我应该使用 pickle,但似乎在我pickle.loads之前似乎有 pickle.dumps对象,是真的吗?如果是的话,我怎么能绕过这个?

4

2 回答 2

2

pickle.dumps是将 Python 对象序列化为 Pickle 字符串,pickle.loads并将序列化的 Pickle 字符串转换为 Python 对象的函数。您基本上是在询问如何反序列化未序列化的对象。答案是你不能。

但是,bikeshredder 是正确的——您的字符串已经是 JSON 的序列化格式,因此您可以使用json.loads.

于 2013-01-28T23:27:33.177 回答
1

字符串 "[A,B,C]" 既不是 pickle 格式,也不是我所知的任何其他序列化格式。它也不是 Python 代码。

如果您只想反序列化一些数据(例如从文件中读取),我建议使用JSON。它易于编写,解析速度快,是一个完善的标准。

>>> import json
>>> data_json = '["A", "B", "C"]'
>>> data = json.loads(data_json)
>>> data
[u'A', u'B', u'C']
>>> data_json = json.dumps(data)
>>> data_json
'["A", "B", "C"]'
于 2013-01-28T23:25:34.540 回答