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')]