我有一个应用程序,它只想序列化以下类/函数:没有 Python 原始数据类型没有 Numpy 数据类型没有 pandas 数据类型。
那么,是否可以过滤要保存在 dill 中的对象?(按类型循环过滤)
谢谢,
我有一个应用程序,它只想序列化以下类/函数:没有 Python 原始数据类型没有 Numpy 数据类型没有 pandas 数据类型。
那么,是否可以过滤要保存在 dill 中的对象?(按类型循环过滤)
谢谢,
虽然这不是一个完整的解决方案(即,您可能希望包含更多具有pandas
数据类型、数据类型的模块……而且您可能希望通过过滤而不是模块numpy
来对内置类型更具选择性)……type
我认为它可以让你得到你想要的。
>>> import dill
>>> import numpy
>>> import pandas
>>>
>>> target = numpy.array([1,2,3])
>>> dill.dumps(target) if not dill.source.getmodule(type(target)) in [numpy, pandas.core.series, dill.source.getmodule(int)] else None
>>>
>>> target = [1,2,3]
>>> dill.dumps(target) if not dill.source.getmodule(type(target)) in [numpy, pandas.core.series, dill.source.getmodule(int)] else None
>>>
>>> target = lambda x:x
>>> dill.dumps(target) if not dill.source.getmodule(type(target)) in [numpy, pandas.core.series, dill.source.getmodule(int)] else None
>>>
>>> class Foo(object):
... pass
...
>>> target = Foo()
>>> dill.dumps(target) if not dill.source.getmodule(type(target)) in [numpy, pandas.core.series, dill.source.getmodule(int)] else None
'\x80\x02cdill.dill\n_create_type\nq\x00(cdill.dill\n_load_type\nq\x01U\x08TypeTypeq\x02\x85q\x03Rq\x04U\x03Fooq\x05h\x01U\nObjectTypeq\x06\x85q\x07Rq\x08\x85q\t}q\n(U\r__slotnames__q\x0b]q\x0cU\n__module__q\rU\x08__main__q\x0eU\x07__doc__q\x0fNutq\x10Rq\x11)\x81q\x12}q\x13b.'
>>>
但是,如果您问是否dill
有这样的过滤方法,那么答案是否定的。