我可以腌制一个没有任何转储的字符串吗?

时间:2013-01-28 23:19:54

标签: python pickle

说我有一个字符串“[A,B,C]”,我想把它转换成一个列表[A,B,C],我已经google了一下,我知道我应该使用泡菜,但似乎在我pickle.loads之前我似乎必须pickle.dumps这个对象,这是真的吗?如果是的话,我该如何走动?

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分: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"]'