Python - Сохранить объекты вместе в двоичном файле?

1

У меня есть класс python который содержит много объектов - некоторые из них - структуры данных (lists, dicts т.д.), А некоторые - обработчики других классов (которые также содержат другие структуры данных...).

Вместо того, чтобы использовать pickle для сохранения всего класса и его содержимого, мне было интересно, есть ли способ serialize данные нескольких желаемых объектов и сохранять их (ТОЛЬКО их) в двоичном файле?

Например, предположим, что у меня есть следующие 2 объекта python:

myList = [1, 2, 3, 4, 5]
myDict = {'a' : 14, 'b' : 5, 'c' : 65}

Каков наилучший способ сохранить содержимое BOTH этих объектов python в двоичном файле? В идеале я хотел бы сохранить оба объекта в одном двоичном файле и иметь возможность загружать данные позже.

  • 0
    Вы можете попытаться создать что-то, используя модуль struct, но, насколько я знаю, он не поддерживает сохранение списков или слов.
  • 0
    Если они действительно так же просты, как списки или дикты, рассмотрите json, как изложено в разделе Как я могу прочитать несколько объектов JSON из файла / потока в Python? ,
Показать ещё 1 комментарий
Теги:

1 ответ

5
Лучший ответ

Затем создайте для них класс контейнера (или названный кортеж, или только кортеж, что угодно) и рассорите его (или измените исходный класс, чтобы только малые части, которые вы хотите). pickle - сериализация, и это стандартный механизм Python. Поэтому, если вам не требуется, например, более функциональная совместимость между разными языками, придерживайтесь этого.

  • 0
    Спасибо. pickle сохраняет данные экономичным способом? (Я ожидаю иметь дело с большими объектами)
  • 0
    @ user3262424: Используйте протокол 2, в настоящее время это самый компактный / эффективный формат.
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню