sqlite3.ProgrammingError: Вы не указали значение для привязки 1 - PullRequest
0 голосов
/ 21 марта 2020

Я пытаюсь загрузить данные csv в базу данных, которую я уже создал, и получаю указанную выше ошибку. Файл CSV содержит только 29 строк, все написано правильно, я просто не знаю, упускаю ли я какой-то небольшой фрагмент синтаксиса? Кто-нибудь может порекомендовать, как решить эту проблему или где я могу пойти не так?

Моя функция подробно описана ниже:

def load_csv_to_db():
    db_file_name = 'records.db'
    csv_file_name = '13100262.csv'

    SQL = """
    insert into records_table (ref_date,geo,dguid,sex,age_group,student_response,uom,uom_id,scalar_factor,scalar_id,
    vector,coordinate,value,status,symbol,terminated,decimals) values (:ref_date,:geo,:dguid,:sex,:age_group,
    :student_response,:uom,:uom_id,:scalar_factor,:scalar_id,:vector,:coordinate,:value,:status,:symbol,:terminated,
    :decimals)"""

    with open(csv_file_name, 'rt') as csv_file:
        csv_reader = csv.DictReader(csv_file)

        with sq.connect(db_file_name) as conn:
            cursor = conn.cursor()
            cursor.executemany(SQL, csv_reader)

1 Ответ

0 голосов
/ 22 марта 2020

Первая строка таблицы не содержит столбец, содержимое которого (буквально) ref_date.

Поскольку программа использует DictReader, предположим, что первая строка таблицы - это заголовки столбцов, которые должно точно соответствовать именам местозаполнителей, используемым в SQL (хотя это не обязательно порядок).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...