Python 什么文件类型最适合这种情况?
我有一个Python程序,它使用Selenium每隔X分钟从网站上刮取一些数据。 每个示例都表示为一个元组,带有布尔值和日期时间,例如:Python 什么文件类型最适合这种情况?,python,json,file,format,Python,Json,File,Format,我有一个Python程序,它使用Selenium每隔X分钟从网站上刮取一些数据。 每个示例都表示为一个元组,带有布尔值和日期时间,例如: from datetime import datetime result = (True, datetime.now()) 通常我会将样本保存在数据库中,这很容易做到,但这次我需要将它们保存到一个文件中。 因此,在每次采样之后,我需要打开文件,并附加结果元组 但是,最初我使用JSON,为了附加新数据,必须首先使用JSON.load,然后附加结果,然后再次
from datetime import datetime
result = (True, datetime.now())
通常我会将样本保存在数据库中,这很容易做到,但这次我需要将它们保存到一个文件中。
因此,在每次采样之后,我需要打开文件,并附加结果元组
但是,最初我使用JSON,为了附加新数据,必须首先使用JSON.load
,然后附加结果,然后再次使用JSON.dump
然而,由于我最终将不得不处理大量的样本,因此追加的过程将大大减慢,因为我必须在再次写入之前读取整个文件
因此,JSON在这里可能不是一种好的格式。还有什么其他格式可以让我编写元组,然后轻松地阅读它们?(=不必逐个字符地将它们解析为元组)。由于文本文件很容易,并且非常支持
open('a')
模式,我只能建议这样做。从技术上讲,您可以将元组转换为字符串“True,formatted_date”,并将其保存在.txt
文件中,但由于它是逗号分隔的,您甚至可以将其保存为.csv
文件。显然,当读回时,您必须将日期字符串解析为实际日期,但如果您使用单一格式,这应该不难。我想我找到了解决问题的方法:有一种名为pickle的格式,它以二进制格式存储python对象,然后将它们读回对象。哦,是的,pickle很棒。只要确保在取消勾选数据时始终具有兼容的python版本即可。