我有一个名为flower的类,它有两个属性,名称和价格
我制作了一个列表,其中我有一些花卉对象并将其写入文件,如何通过读取文件创建对象列表?
这就是我在文件中的内容: [百合; 5,玫瑰; 10]
答案 0 :(得分:1)
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