【问题标题】:module 'pickle' has no attribute 'dump'模块“泡菜”没有属性“转储”
【发布时间】:2018-06-13 16:44:51
【问题描述】:
import pickle

imelda = ('More Mayhem',
          'IMelda May',
          '2011',
          ((1, 'Pulling the Rug'),
           (2, 'Psycho'),
           (3, 'Mayhem'),
           (4, 'Kentish Town Waltz')))

with open("imelda.pickle", "wb") as pickle_file:
    pickle.dump(imelda, pickle_file)

我正在尝试执行此代码,但控制台一直告诉我:

module 'pickle' has no attribute 'dump'

我必须通过 pip 安装 pickle 吗?我不确定这里发生了什么。

【问题讨论】:

  • 我可以在我的电脑上运行你的代码。
  • 我的超能力告诉我,你的当前目录中有一个名为 pickle.py 的文件,这是 Unable to import Python's email module at all 的副本
  • print(dir(pickle)) 以显示 jwodder 精神力量的准确性。总是print你不明白的一切。
  • 很确定@jwodder 是对的...如果在import pickle 之后添加行print(pickle.__file__) 并运行代码你会看到什么?
  • 是的,我确实有我的文件名 picckle.py。感谢您的心理帮助@jwodder

标签: python pickle


【解决方案1】:

我也遇到过。我的当前目录中有一个名为pickle.py 的文件。只需重命名它并修复它:)

【讨论】:

  • 失败,我创建了一个名为 pickle 的文件来管理 pickle 操作。
【解决方案2】:

您可能已将 Python 文件名用作 pickle.py。 Python 解释器很困惑,在你的文件 pickle.py 中寻找转储函数,而不是你导入的包。将您的文件名更改为其他名称,它将起作用。

【讨论】:

    【解决方案3】:

    只需检查您的文件名。 如果是pickle.py,那么我建议您更改文件名。而是重命名为 pickle1.py 它会起作用的。

    【讨论】:

      【解决方案4】:

      我认为不是文件名问题。您将转储写为转储。用转储试试。

      【讨论】:

      猜你喜欢
      • 2017-03-20
      • 2021-12-24
      • 2012-07-07
      • 2020-01-01
      • 2021-01-28
      • 2015-12-08
      • 1970-01-01
      • 1970-01-01
      • 2021-09-23
      相关资源
      最近更新 更多