我已经尝试了很多不同的变体,并且只使用变量的直字符串进行调试,但我相信这与数据类型有关?这应该是一个快速的原型,但已经吃了一个下午!
#! usr/bin/ python
import sqlite3
import sys
import psutil
cpu_usage = psutil.cpu_percent()
ram_usage = psutil.phymem_usage()
disk_usage = psutil.disk_usage('/')
network = psutil.network_io_counters(True)
conn = sqlite3.connect('stats.db')
cur = conn.cursor()
cur.execute("CREATE TABLE stats (id INTEGER PRIMARY KEY, cpu TEXT, ram TEXT, disk TEXT, network TEXT, timestamp DATE DEFAULT (datetime('now','localtime')))")
cur.execute("INSERT INTO stats (id, cpu, ram, disk, network, timestamp) VALUES (?, ?, ?, ?, ?, ?)", (None, cpu_usage, ram_usage, disk_usage, network, None))
print(cur.fetchall())
conn.commit()
conn.close()
Traceback (most recent call last):
File "build_db.py", line 15, in <module>
cur.execute("INSERT INTO stats (id, cpu, ram, disk, network, timestamp) VALUES (?, ?, ?, ?, ?, ?)", (None, cpu_usage, ram_usage, disk_usage, network, None))
sqlite3.InterfaceError: Error binding parameter 2 - probably unsupported type.