首页 > 解决方案 > 将简单类序列化为文件中的一行

问题描述

我有一个非常简单的 Python 类,称为 Post,它只有 3 个字符串字段:作者、时间戳和内容。

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

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

标签: pythonserialization

解决方案


存储对象的一种方法是 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})

推荐阅读