gpt4 book ai didi

python - 如何识别一个字节字符串是否是一个 pickled 对象?

转载 作者:太空宇宙 更新时间:2023-11-03 14:07:59 25 4
gpt4 key购买 nike

如何识别一个字节字符串对象是否是一个 pickled 对象。

例如,在下面的字典中,我如何识别b是一个pickled对象而其他对象不是?

example = {'a':1, 'b':b'\x80\x03K\x02.', 'c':b'3'}

最佳答案

尽管有一些方法可以判断流是否可能是 pickle 流(例如,第一个字节始终是 \x80,后跟协议(protocol)号,这里 \x03,最后一个字节也总是 b'.'),一般来说很难确定(第一个字节可能是巧合)字节是随机字符串中的 \x80)。所以你最好简单地尝试解开它,看看是否可行:

import pickle

def is_pickle_stream(stream):
try:
pickle.loads(stream)
return True
except UnpicklingError:
return False

如果流是 pickle 流,上述方法将返回 True,否则返回 False,如果 loads 则抛出异常抛出异常(内存不足等)。

关于python - 如何识别一个字节字符串是否是一个 pickled 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41923674/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com