【问题标题】:Loading a pkl file using dill使用 dill 加载 pkl 文件
【发布时间】:2014-09-07 07:25:05
【问题描述】:

我有一个非常复杂的字典和转储,直接使用 dill 加载。这是参考这个answer。但有一点修改。我需要将其保存在某个文件中并读取该文件以供以后使用。

这是我的一段代码:

NWORDSa 是我保存到'abc.pkl' 中的字典

pdict1 = dill.dumps(NWORDSa)
dill.dump_session('abc.pkl')

我不知道如何读回原来的NWORDSa。我试过了:

c = dill.load_session('abc.pkl')
NWORDS_b= dill.loads(c)  

和 (想把它保存在一个变量bbn中)

with open('abc.pkl', 'rb') as f:
     pickle.dump(bbn, f)  

但两者都不起作用。有没有更好的方法?

【问题讨论】:

  • 使用.pt 作为pickle 文件扩展名(或者至少这是pycharm 强调的,这让我认为这是通用扩展名)。

标签: python-2.7 dictionary pickle dill


【解决方案1】:

您正在转储会话,而不是字典本身。我不知道是否需要保存/加载会话 - 这取决于您的设置。

试试:

with open(outfile, 'wb') as out_strm: 
    dill.dump(datastruct, out_strm)

和:

with open(infile, 'rb') as in_strm:
    datastruct = dill.load(in_strm)

如果您需要转储会话,请在之前使用 dill.dump_session('session.pkl') 并在之后使用 dill.load_session('session.pkl')

【讨论】:

  • 使用.pt 作为pickle 文件扩展名(或者至少这是pycharm 强调的,这让我认为这是常见的扩展名)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-04-15
  • 2014-10-21
  • 2020-01-18
  • 2019-08-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多