Перебирая словарь рассола в python - PullRequest
0 голосов
/ 23 сентября 2019

Я пытаюсь загрузить данные из объекта / файла pickle, однако не могу избавиться от ошибки.

Я попытался настроить трассировку, чтобы убедиться, что мой словарь заполненданные из файла pickle.

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

Я ожидал, что он сможет циклически перемещаться по словарю, но я продолжаю получать сообщение об ошибке: 'AttributeError: объект списка' не имеет атрибута 'items'.

Я пытался:

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

, но это не помогло устранить ошибку.

Редактировать: sys.version возвращает 3.7.3.

У меня естьпопытался использовать:

for key in dictionary:

Это возвращает мои данные в качестве ключа: ['Head', '-0.02845094', '0.7953885', '2.586351'] Однако это возвращает новую ошибку во время выполнения:

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

Должен ли я извлечь свои данные из ключа или есть более простой выход из этого?

1 Ответ

1 голос
/ 23 сентября 2019

Я не уверен, что вы пытаетесь сделать, но в вашем случае это просто потому, что ваш pickle.load возвращает список, и вы пытаетесь получить доступ к функции .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

Я не уверен, что вы ожидаете этого результата, но, по крайней мере, он должен работать.

...