将简单类序列化为文件中的一行

时间:2018-11-19 02:21:21

标签: python serialization

我有一个非常简单的Python类,称为Post,它只有3个String字段:author,timestamp和content。

我想将一堆这些对象序列化为一个文件,所以我尝试了Pickle,但是每个文件使用3行,我想遍历文件的每一行并将1行转换为1个Post对象。

将这些序列化为一行的简单方法是什么?

1 个答案:

答案 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})