【问题标题】:python pickle object with lambdas带有 lambdas 的 python pickle 对象
【发布时间】:2017-08-16 14:15:17
【问题描述】:

如何腌制包含 lambdas 的 python 对象?

Can't pickle local object 'BaseDiscretizer.__init__.<locals>.<lambda>'

是我在酸洗https://github.com/marcotcr/lime/blob/2703bcdcddd135947fe74e99cc270aa4fac3263a/lime/lime_tabular.py#L88 LimeTabularExplainer 时尝试酸洗https://github.com/marcotcr/lime/blob/97a1e2d7c1adf7b0c4f0d3b3e9b15f6197b75c5d/lime/discretize.py 时遇到的错误

【问题讨论】:

标签: python-3.x pickle dill


【解决方案1】:

标准的 pickle 模块无法序列化 lambda,但有一个名为 dill 的第三方包支持它们。

【讨论】:

  • 谢谢。 with open('data', 'wb') as f: dill.dump(exp, f) 工作正常,但是在回读时:with open('data', 'r') as f: dill.loads(f) 我得到 a bytes-like object is required, not '_io.TextIOWrapper'
  • 这终于奏效了:with open('data', 'rb') as f: foo = dill.load(f)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-10-15
  • 1970-01-01
  • 1970-01-01
  • 2016-06-17
  • 2020-12-07
  • 1970-01-01
相关资源
最近更新 更多