Python SQLite3 Commit()无效错误

时间:2015-03-17 07:45:54

标签: python sqlite

Python新手,第一次使用SQLite3。

我在网上漫步了如何使用SQLite的基础知识。我正在尝试从当前的CSV存储改进到适当的数据库,这似乎很简单。

我的问题是,当我尝试commit()时,蜘蛛说它的语法无效。 我搜索了一个答案,但似乎大多数人的错误版本略有不同。我仔细检查括号,我认为我有正确的。 有人可以借第二眼,告诉我我错过了什么吗? 下面是一些代码。省略的部分只是串口初始化的东西。如果需要,我也可以发布。

代码的基本思想是它读取GPS冰球并解析NMEA句子,然后将它们存储在数据库中以及我从无线电中提取的RSSI级别。 data_log就是这样我可以看到它被打印在屏幕上以防它崩溃。

def init_file():
    filename = raw_input('Enter save file:')
    global db
    db = sqlite3.connect('RSSI_DATA/'+filename)

    init_file()
    cursor = db.cursor()
    cursor.execute('''
    CREATE TABLE users(id INTEGER PRIMARY KEY, TOD BLOB,Lat REAL,Long REAL,Alt   REAL,Qual REAL,Ref_ID REAL,Num_Sat REAL,Hor_Dil REAL,RSSI REAL)
    ''')
    db.commit() #write header to db THIS ONE HAS NO ERRORS!!!

    while 1:

        gps = ser2.readline()
        try:    
            gps_msg = pynmea2.parse(gps)
        except:
            pass
        try:    
        if gps_msg.sentence_type == 'GGA':
            ser1.write("q")
            rssi = ser1.readline()
            rssi_dB = rssi_convert(float(rssi.strip('\0')))
            data_log = str(gps_msg.timestamp) + "," + str(gps_msg.latitude) + "," + str(gps_msg.longitude) + "," + str(gps_msg.altitude) + "," + str(gps_msg.gps_qual) + "," + str(gps_msg.ref_station_id) + "," + str(gps_msg.num_sats) + "," + str(gps_msg.horizontal_dil) + ","  + str(rssi_dB) + "\n"

            print data_log
            cursor.execute('''INSERT INTO users(TOD, Lat, Long , Alt, Qual, Ref_ID, Num_Sat, Hor_Dil, RSSI ) VALUES(?,?,?,?,?,?,?,?,?)''',(gps_msg.timestamp,gps_msg.latitude,gps_msg.longitude,gps_msg.altitude,gps_msg.gps_qual,gps_msg.ref_station_id,gps_msg.num_sats,gps_msg.horizontal_dil,rssi_dB)
            db.commit()  # THIS GETS AN INVALID SYNTAX ERROR???
        except:
            pass

1 个答案:

答案 0 :(得分:2)

您在前一行缺少右括号:

cursor.execute('''<insert>''',(<params>)
#             1               2        2?