Python предоставляет несколько стандартных способов для сериализации объектов в файл для последующего извлечения. Двумя наиболее распространенными являются pickle
и JSON (с использованием модуля simplejson
).
Если вы собираетесь использовать только сериализованные данные в программах Python, то pickle
- это более простой выбор. Если вам нужно иметь возможность обмениваться данными по нескольким программам, то JSON является более естественным выбором.
Вы можете прочитать больше о pickle
модуля здесь: https://docs.python.org/2/library/pickle.html
В качестве простого примера использования pickle
:
class Flower(object):
def __init__(self, type, value):
super(Flower, self).__init__()
self.type = type
self.value = value
def __str__(self):
return "I'm a {} and cost ${}!".format(self.type, self.value)
if __name__== "__main__":
flowers = [ Flower("lily",5), Flower("rose",10) ]
for f in flowers:
print f
pfile = open("flower_list.pickle", mode="wb")
pickle.dump(flowers, pfile)
pfile.close()
pfile = open("flower_list.pickle", mode="rb")
recalled_flowers = pickle.load(pfile)
pfile.close()
for f in recalled_flowers:
print f
Только так вы знаете, текст вашего файла устанавливается как словарь, хотя это список. Если вы переключите квадратные скобки на фигурные скобки и точки с запятой на двоеточия, было бы намного проще закодировать, чем список, и будет синтаксически корректным. –