«IndexError: строковый индекс вне диапазона» при вставке CSV-файла в SQL База данных PYTHON - PullRequest
0 голосов
/ 06 марта 2020

У меня есть этот код для загрузки CSV-файла «latest_file», который имеет 7 столбцов и выглядит следующим образом:

Дата, ФИО, час30, электронная почта, Роль, Aux_code, Скорректированное состояние Timev2
3 / 5/2020, Роландо Кардона, 23:30:00, rolandoc@email.com, уровень 2, недоступен, 0,466666667
3/5/2020, Аллан Монкада, 23:00:00, allanm@email.com, уровень 1, недоступен 0,016666667
3/5/2020, Ангел Алонзо, 23:00:00, angela3@email.com, уровень 1, недоступен, 0,05
3/5/2020, Дэвид Лобо, 23:30:00, davidl2@email.com, Уровень 1, По вызову, 0
3/5/2020, Сандра Черрато, 23:00:00, sandrac@email.com, Уровень 2, После вызова, 6.25
3/5/2020, Эрик Флорес , 23:00:00, erickf@email.com, 0, не использовать - недоступен, 178.6333333
3/5/2020, D iego Cerrato, 23:00:00, diegoc@email.com, уровень 1 , Готово, 58.83333333

в мою базу данных с этим кодом:

for row in latest_file:
    cursor.execute('''INSERT INTO V6_test (Date,Full_Name,hour30,email,Role,Aux_code,Adjusted_Time)
                  VALUES (?,?,?,?,?,?,?);''', row[0],row[1],row[2],row[3],row[4],row[5],row[6])

Я читаю последний файл с

latest_file = pd.read_csv(#filepath, sep = ",")

, но я получаю этот код ошибки " IndexError: строковый индекс вне диапазона "некоторые значения в роли были равны NULL, поэтому я попытался заполнить их 0, чтобы увидеть, NULL, где возникла проблема, но безуспешно

Чтобы проверить тип значения каждой строки, я сделал:

for row in latest_file:
print('TYPE:', type(row))
    print('ROW', row)

, но по какой-то причине все типы стали строкой для каждой строки даже после форматирования каждый столбец с:

latest_file['Date'] = pd.to_datetime(latest_file["Date"], format = '%m/%d/%y')
latest_file['hour30'] = pd.to_datetime(latest_file['hour30'],format='%H:%M').dt.time
latest_file['Adjusted State Timev2'] = latest_file['Adjusted State Timev2'].astype(float)

Я получаю ту же ошибку и все еще печатаю строку для всех столбцов. Я также изменил все типы данных в таблице базы данных на строку просто для просмотра, но безуспешно

Есть идеи?

...