正确的我的这件作品的目的是获取打印的值到数据库中,但从终端查询数据库返回浮点不是打印值有没有办法强制这个通过到数据库。 这里是我的代码插入一个转换百分比到数据库
def getCpuLoad():
"""
Returns the cpu load as a value from the interval [0.0, 1.0]
"""
dt = list(deltaTime(INTERVAL))
idle_time = float(dt[3])
total_time = sum(dt)
load = 1-(idle_time/total_time)
return load
def diskspace():
stats = os.statvfs('/opt')
freespace = stats.f_bavail * stats.f_frsize
freespace/1048576
return freespace
while True:
print time.strftime("%A, %B, %d, %Y, %H, %M"),"CPU usage=%.2f%%" % (getCpuLoad()*100)
cursor.execute('''INSERT INTO mytable (Date, Cpu) VALUES (?,?)''',(today, getCpuLoad()))
print time.strftime("%A, %B, %d, %Y, %H, %M"), diskspace()
cursor.execute('''INSERT INTO mytable (Date, free) VALUES (?,?)''',(today,diskspace()))
cursor.commit() ,因为它可以看到,我做的浮点的四舍五入在打印但上面说只插入它无需转换。任何人都可以帮助请清楚,因为我仍然在学习。 python和sqlite3。
你正在存储的问题是你将'12.34'存储到'mytable.Cpu'中,当你检查它时,你会看到'12.3399921'?顺便说一句mytable的定义是什么? – mjv 2013-03-15 13:53:41
是的,当我检查它返回一个十进制浮点数。mytable只是数据库中表的名称,其中cpu是列 – 2013-03-15 14:05:43