python sqlite3.OperationalError:near" - ":语法错误

时间:2017-01-20 17:54:33

标签: python sqlite cursor

我知道还有其他类似的问题,但我找不到合适的解决方案。我的桌面上有一个db文件,我从DB文件中获取了DB列名。我从具有与DB文件相同的列名的excel文件创建值列表,然后我尝试使用下面的脚本更新数据库文件,但我一直在标题中收到错误。这工作在周一......现在它正在抛出这个错误

    values = ['111-222-333-44', 'xxxxx', '8W 1 CPD FR with ESD Guard', 'STEVES Power INC', '6.01', '9.05', 'beach', 'None', '7000008']
    #values is autocreated but here is the list
    conn = sqlite3.connect(databasefile)

    cursor = conn.execute('select * from powersupplies')
    names = list(map(lambda x: x[0], cursor.description))
    col_names = ', '.join(names)
    print col_names

    col_spaces = ','.join(['?'] * len(names))
    print col_spaces
    c = conn.cursor()

    sql = 'INSERT INTO powersupplies (%s) values(%s)' % (col_names, col_spaces)
    c.execute(sql, values)

    conn.commit()
    conn.close()

1 个答案:

答案 0 :(得分:0)

cursor = conn.execute(' select * from powersupplies')

这一行。如果您选择的任何这些值都有" - "在他们中,那么这可能是你的问题。我之前遇到过这个确切的错误并且摆脱破折号已经为我修复了它。

但是,其他人可能会为您提供更好的解决方案。

相关问题