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