pymysql: "Неверное целочисленное значение: '' для столбца A" и "Данные, усеченные для столбца B" " - PullRequest
0 голосов
/ 14 октября 2019

Я пытаюсь выполнить массовую загрузку данных в базу данных MySQL с помощью библиотеки pymysql. Некоторые из столбцов в моем фрейме данных содержат пустые значения для всех записей. Это пустое значение приводит к следующей ошибке:

pymysql.err.InternalError: (1054, "Unknown column 'nan' in 'field list'")

Чтобы справиться с этой ошибкой, я пробовал разные варианты, как показано ниже, что привело меня к следующим ошибкам для разных столбцов:

PATH/lib/python3.6/site-packages/pymysql/cursors.py:170: Warning: (1366, "Incorrect integer value: '' for column 'X' at row 1")
PATH/lib/python3.6/site-packages/pymysql/cursors.py:170: Warning: (1265, "Data truncated for column 'Y' at row 1")

Вот фрагмент кода:

    import pymysql
    conn = get_connection(credentials)
    final_df = final_df.astype(object).where(pd.notnull(final_df), None)
    fdf = list(final_df.itertuples(index=False, name=None))
    cursor = conn.cursor()
    sql = "call procedure (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)"
    cursor.executemany(sql, fdf)
    conn.commit()
    cursor.close()
    conn.close()

Может кто-нибудь помочь мне разобраться с этой проблемой?

Примечание:

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