如何"de-stringify" 腌制对象?
How to "de-stringify" pickled object?
我需要序列化一个 pickle 对象并将其转换为字符串。我需要什么类型的转换才能用 pickle.loads()
反序列化它? bytes()
和 bytearray()
没有用...我还需要使用 python 3,所以 cPickle 不是我的选择。
import pickle
hallo = {'lol': 1, 'lel': 2}
hallo = str(pickle.dumps(hallo))
hallo = pickle.loads(bytes(hallo)) # how to cast correctly?
print(hallo)
使用 ast.literal_eval
将值的文字表示转换回其初始值,例如通过对 bytes
对象调用 str
生成的初始值。
import ast
import pickle
hallo = {'lol': 1, 'lel': 2}
hallo = str(pickle.dumps(hallo))
hallo = pickle.loads(ast.literal_eval(hallo))
print(hallo) # {'lol': 1, 'lel': 2}
我需要序列化一个 pickle 对象并将其转换为字符串。我需要什么类型的转换才能用 pickle.loads()
反序列化它? bytes()
和 bytearray()
没有用...我还需要使用 python 3,所以 cPickle 不是我的选择。
import pickle
hallo = {'lol': 1, 'lel': 2}
hallo = str(pickle.dumps(hallo))
hallo = pickle.loads(bytes(hallo)) # how to cast correctly?
print(hallo)
使用 ast.literal_eval
将值的文字表示转换回其初始值,例如通过对 bytes
对象调用 str
生成的初始值。
import ast
import pickle
hallo = {'lol': 1, 'lel': 2}
hallo = str(pickle.dumps(hallo))
hallo = pickle.loads(ast.literal_eval(hallo))
print(hallo) # {'lol': 1, 'lel': 2}