import numpy as np
import sqlite3
DB = __file__.replace('.py','.db')
tablename = 'why'
fieldnames = 'ttt'
a = np.array([8.292553,16.242676,16.328308],dtype = np.float32)
v = []
for i in range(3):
result = [a.mean()]
# result = [float(a.mean())] #this is ok,but why? not support numpy?
result.append(i+1)
v.append(result)
print(v)
conn = sqlite3.connect(DB)
cur = conn.cursor()
cur.execute('''CREATE TABLE if not exists {table}
(id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
{field} FLOAT);'''.format(table=tablename,field=fieldnames))
conn.commit()
for i in range(3):
cur.execute('''INSERT INTO {table}({keys}) VALUES (0.3);'''.format(table=tablename,keys=fieldnames))
conn.commit()
try:
sql = 'UPDATE {table} SET {field} = ? where id = ?;'
cur.executemany(sql.format(table=tablename,field=fieldnames),v)
print(v)
conn.commit()
print('SUCCESS:UPDATE [[{table}] {field}]'.format(table=tablename,field=fieldnames))
except:
print('ERROR:UPDATE [[{table}]
{field}]'.format(table=tablename,field=fieldnames))
cur.execute('select * from {table} limit 3'.format(table=tablename))
print(cur.fetchall())
conn.close()
out:
[[13.621179, 1], [13.621179, 2], [13.621179, 3]]
[[13.621179, 1], [13.621179, 2], [13.621179, 3]]
SUCCESS:UPDATE [[why] ttt]
[(1, b'Y\xf0YA'), (2, b'Y\xf0YA'), (3, b'Y\xf0YA')]