Python 酸洗数据类的实例

Python 酸洗数据类的实例,python,python-dataclasses,Python,Python Dataclasses,是否有可能pickle/dill一个开发如下的\u实例 导入dill 作为pd进口熊猫 将numpy作为np导入 从日期时间导入日期时间,时区 从dataclasses导入make_dataclass,字段 fields=[('float_val',float,field(默认值=np.nan)), ('df',pd.DataFrame,字段(默认工厂=pd.DataFrame)), ('int_val',int,field(默认工厂=int)), ('time_val',datetime,fi

是否有可能pickle/dill
一个开发如下的\u实例

导入dill
作为pd进口熊猫
将numpy作为np导入
从日期时间导入日期时间,时区
从dataclasses导入make_dataclass,字段
fields=[('float_val',float,field(默认值=np.nan)),
('df',pd.DataFrame,字段(默认工厂=pd.DataFrame)),
('int_val',int,field(默认工厂=int)),
('time_val',datetime,field(默认值=datetime.now(timezone.utc)))]
Aclass=make_dataclass('Aclass',字段)
一个_实例=Aclass()
dump(一个_实例,open('test.pkl','wb'))

转储提供了PicklingError:Can't pickle:it's not found as types.Aclass

我发现在
pickle
中不支持这一点,这可能意味着
dill

数据类按名称以及其他类进行pickle。不支持通过名称访问的酸洗类。-Serhiy Storchaka(2018-12-16)

另请参见此处了解有关dill的更多详细信息。

我发现这在
pickle
中不受支持,这可能意味着
dill

数据类按名称以及其他类进行pickle。不支持通过名称访问的酸洗类。-Serhiy Storchaka(2018-12-16)

另请参见此处了解有关dill的更多详细信息。

Thx@Tom Myddeltyn,适用于5510问题缺陷追踪器
dill.dump
dill.load
通过使用
Aclass.\uuuuu模块\uuuu=\uuuu名称\uuuu
设置名称来工作

完整代码如下:

fields = [('float_val', float, field(default=np.nan)),
          ('df', pd.DataFrame, field(default_factory=pd.DataFrame)),
          ('int_val', int, field(default_factory=int)),
          ('time_val', datetime, field(default=datetime.now(timezone.utc)))]

Aclass = make_dataclass('Aclass', fields)
Aclass.__module__ = __name__ # provide name for pickling the class

an_instance=Aclass()

dill.dump(an_instance, open('test.pkl', 'wb'))
dill.load(open('test.pkl', 'rb'))

Thx@Tom Myddeltyn,用于问题35510 bug tracker
dill.dump
dill.load
通过使用
Aclass.\uuuuu模块\uuuu=\uuuu名称\uuuu
设置名称来工作

完整代码如下:

fields = [('float_val', float, field(default=np.nan)),
          ('df', pd.DataFrame, field(default_factory=pd.DataFrame)),
          ('int_val', int, field(default_factory=int)),
          ('time_val', datetime, field(default=datetime.now(timezone.utc)))]

Aclass = make_dataclass('Aclass', fields)
Aclass.__module__ = __name__ # provide name for pickling the class

an_instance=Aclass()

dill.dump(an_instance, open('test.pkl', 'wb'))
dill.load(open('test.pkl', 'rb'))

dill
dill
文档中说明了一个对象的需求是什么?你用错误信息搜索了吗?你看到这个了吗?这是一个类似的问题。
dill
文档中说明了一个对象的需求是什么?你用错误信息搜索了吗?你看到这个了吗?这是一个类似的问题。