【问题标题】:Looping through a pickle dictionary in python在python中循环一个pickle字典
【发布时间】:2019-09-22 21:48:09
【问题描述】:

我正在尝试从 pickle 对象/文件加载数据,但我似乎无法摆脱错误。

我已尝试设置跟踪以确保我的字典中填充了 pickle 文件中的数据。

fr = open(line, 'rb')
    dictionary = pickle.load(fr)
...
for key, value in dictionary.items()

我希望它能够遍历字典,但我继续收到错误:'AttributeError: 'list' object has no attribute 'items'。

我试过了:

for key in sorted(dictionary.keys()):

但它并没有解决错误。

编辑: sys.version 返回 3.7.3。

我尝试过使用:

for key in dictionary:

这会返回我的数据作为键: ['头','-0.02845094','0.7953885','2.586351'] 但是,这会在运行时返回一个新错误:

walk[key] = []
TypeError: unhashable type: 'list'

我应该从密钥中提取数据还是有更简单的方法?

【问题讨论】:

  • 请确定您的 Python 版本。
  • 当你遇到这样的问题时,在你尝试使用它之前打印出没有你期望的属性的东西,以及它的类型:print(dictionary, type(dictionary)),并再次运行您的代码。应该可以帮助您了解出了什么问题。

标签: python list pickle


【解决方案1】:

我不确定您要做什么,但在您的情况下,这只是因为您的 pickle.load 返回一个列表,而您正在尝试访问列表的 .items 函数(这不存在, items 用于字典)。

你可能想试试:

for i in dictionary: # i is the name I usualy use here, its stands for Item but its way shorter and less painfull to type
    # your loop

我不确定这是否是您期望的结果,但至少它应该运行。

【讨论】:

    猜你喜欢
    • 2019-09-17
    • 2011-04-26
    • 1970-01-01
    • 2018-02-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多