Python pickle / unpickle список в / из файла

У меня есть список, который выглядит так:

a = [['a string', [0, 0, 0], [22, 'bee sting']], ['see string', [0, 2, 0], [22, 'd string']]] 

и у меня проблемы с сохранением и извлечением.

Я могу сохранить его в порядке, используя рассол:

 with open('afile','w') as f: pickle.dump(a,f) 

но при попытке загрузить его выполните следующую ошибку:

 pickle.load('afile') Traceback (most recent call last): File "<pyshell#116>", line 1, in <module> pickle.load('afile') File "C:\Python27\lib\pickle.py", line 1378, in load return Unpickler(file).load() File "C:\Python27\lib\pickle.py", line 841, in __init__ self.readline = file.readline AttributeError: 'str' object has no attribute 'readline' 

Я думал, что я могу преобразовать в массив numpy и использовать save , savez или savetxt . Однако я получаю следующую ошибку:

 >>> np.array([a]) Traceback (most recent call last): File "<pyshell#122>", line 1, in <module> np.array([a]) ValueError: cannot set an array element with a sequence 

2 Solutions collect form web for “Python pickle / unpickle список в / из файла”

Решил сделать это как ответ. Метод pickle.load предполагает получение файла, подобного объекту, но вместо этого вы предоставляете строку и, следовательно, исключение. Поэтому вместо:

 pickle.load('afile') 

ты должен сделать:

 pickle.load(open('afile', 'rb')) 

Чтобы добавить к ответу @ Rapolas K:

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

 with open('afile','rb') as f: pickle.load(f) 
  • маринованный класс cython
  • Почему генераторы не могут мариноваться?
  • pickle быстрее, чем cPickle с числовыми данными?
  • Взаимосвязь между рассолом и глубиной
  • pickle.load () повышение EOFError в Windows
  • установка cPickle с помощью python 3.5
  • Выравнивание типа расширения Python, определенного как C-структура с элементами PyObject *
  • Как разместить мой набор данных в файле .pkl в точном формате и структуре данных, используемой в «mnist.pkl»?
  • В чем разница между режимами rb и r + b в файловых объектах
  • Безопасность JSON против Pickle
  • Как разбить юникоды и сохранить их в базах данных utf-8
  •  
    Interesting Posts for Van-Lav

    Python: рекурсивно создавать словарь из путей

    почему python не может распаковать защищенный паролем zip-файл, созданный winrar, используя zip-метод?

    Python, OpenCV: захват изображений с веб-камеры

    Что означает термин «вещание» в документации Pandas?

    scrapy не может сканировать все ссылки на странице

    Как извлечь весы смещения в последовательную модель Keras?

    Как опубликовать в API-интерфейсе Django REST Framework с помощью связанных моделей

    Как получить / извлечь файл вложения из ответа веб-службы (с помощью Suds)?

    В matplotlib, как вы рисуете тики оси R-стиля, указывающие наружу от осей?

    Соленые огурцы: Почему они так называли?

    Python / Django AttributeError «Объект« игроки »не имеют полей атрибутов '

    Прагмы в python

    Паковать данные в двоичную строку в Python

    Ошибка «Нет такого файла или каталога» с Boost Python

    Обнаружение дубликатов в определенных столбцах в операциях DataFrame & Perform на этих

    Python - лучший язык программирования в мире.