有没有一种好方法来加载表示为字符串的 bytes 对象,以便可以对其进行 unpickle?
这是一个愚蠢的例子:
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.
Run Code Online (Sandbox Code Playgroud)
一种解决方案当然是eval字符串:
unpickled_dict = pickle.loads(eval(string_of_bytes_obj))
Run Code Online (Sandbox Code Playgroud)
但是,似乎是错误的eval,特别是当字符串可能来自网络或文件时。
...
对于更好的解决方案有什么建议吗?
谢谢!
我已经看到并编写了用于在Python中pickle对象的代码.但它们都创建了包含数据的物理文件.我希望我将数据写入内存并读取并腌制并传输.
它甚至可能吗?
from PIL import ImageGrab
import io
import codecs
import pickle
# Model class to send Process Data to the server
class ProcessData:
process_id = 0
project_id = 0
task_id = 0
start_time = 0
end_time = 0
user_id = 0
weekend_id = 0
# Model class to send image data to the server
class ProcessScreen:
process_id = 0
image_data = bytearray()
image_name = "Dharmindar_screen.jpg"
ImageGrab.grab().save(image_name,"JPEG")
image_data = None
with codecs.open(image_name,'rb') as image_file:
image_data = image_file.read()
serialized_process_data = io.BytesIO() …Run Code Online (Sandbox Code Playgroud)