我有一个非常简单的Python类,称为Post,它只有3个String字段:author,timestamp和content。
我想将一堆这些对象序列化为一个文件,所以我尝试了Pickle,但是每个文件使用3行,我想遍历文件的每一行并将1行转换为1个Post对象。
将这些序列化为一行的简单方法是什么?
答案 0 :(得分:1)
一种存储对象的方法是将CSV文件作为行。 CSV文件的每一行将具有三个逗号分隔的值,分别代表作者,时间戳和内容。看一下csv库:
https://docs.python.org/3/library/csv.html#csv.writer
您可能最终会做这样的事情(未经测试):
posts = [ Your Posts array ]
with open('posts.csv', 'w', newline='') as csvfile:
fieldnames = ['author', 'timestamp', 'content']
writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
writer.writeheader()
for p in posts:
writer.writerow({'author': p.author, 'timestamp': p.timestamp, 'content' : p.content})