在下面的脚本中,我使用几个通用值填充SQLite数据库:
import sqlite3
import time
import datetime
import random
conn = sqlite3.connect('tutorial.db')
curs = conn.cursor()
def dynamic_data_entry():
unix = int(time.time())
date = str(datetime.datetime.fromtimestamp(unix).strftime('%Y-%m-%d %H:%M:%S'))
keyword = 'Python'
value = random.randrange(0, 10)
curs.execute("INSERT INTO stuffToPlot (unix, datestamp, keyword, value) VALUES (?, ?, ?, ?)", (unix, date, keyword, value))
conn.commit()
for i in range(10):
dynamic_data_entry()
time.sleep(1)
curs.close
conn.close()
数据库中的一个字段unix
等于int(time.time())
,因此它是当前时间戳。但是,当我打开数据库时,我看到了这一点:
unix
的第一个值比它应该少几个数量级。难道我做错了什么?或者它只是一个错误?
答案 0 :(得分:1)
您是否尝试过多次运行?
重复跑的结果是什么?
它总是第一个比几乎所有其他值低几个数量的值吗?
查看您的表输出,看起来第一个结果来自2016年,其中所有后续结果都来自2017年。这是否可能与time.time()调用返回的数据远低于预期数量有关?
您是否可能没有以空数据库表开头?