2017-01-20 2 views
0

Я знаю, что есть другие вопросы, подобные этому, но я не могу найти рабочее решение. У меня есть файл db на моем рабочем столе, я получаю имена столбцов DB из файла DB. Я создаю список значений из файла excel с тем же именем столбца, что и файл DB, а затем я пытаюсь обновить файл базы данных с помощью сценария ниже, но я все время получаю ошибку в заголовке. Это сработало в понедельник ... теперь он бросает эту ошибкуpython sqlite3.OperationalError: рядом с «-»: ошибка синтаксиса

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() 

ответ

0

курсор = conn.execute ('выберите * от источники питания')

Эта строка здесь. Если какое-либо из этих значений, которое вы выбираете, имеет в них «-», это может быть вашей проблемой. Я столкнулся с этой точной ошибкой, прежде чем и избавиться от тире зафиксировал ее для меня.

Однако у кого-то еще может быть лучшее решение для вас, как их включить.

Смежные вопросы