有没有一种好的方法来加载一个被表示为字符串的字节对象,以便可以取消序列化?
基本示例
这是一个愚蠢的示例:
import pickle
mydict = { 'a': 1111, 'b': 2222 }
string_of_bytes_obj = str(pickle.dumps(mydict)) # Deliberate string representation for this quick example.
unpickled_dict = pickle.loads(string_of_bytes_obj) # ERROR! Loads takes bytes-like object and not string.
解决方案尝试
一种解决方法当然是对字符串进行eval
:
unpickled_dict = pickle.loads(eval(string_of_bytes_obj))
但是,使用eval
似乎不太妥当,特别是当字符串可能来自网络或文件时。
...
有更好的解决方案吗?
谢谢!
str.encode
将字符串解除 pickle。如果不知道,你需要先猜测编码。 - Jacques Gaudin