【Python05-BUG】pandas pd.DataFrame.to_sql()引起的sqlalchemy.exc.IntegrityError: (pymysql.err.IntegrityError) (1048, "Column 'data_value' cannot be null") [SQL: 'INSERT INTO....

报错原因和截图

  • 跑了一下其他的数据都没有异常, 唯独这个数据报了异常! 我把SQL打印了出来, 对照了一遍Column 'data_value' 并没有空值!! 可能并不是SQL的问题.
    【Python05-BUG】pandas  pd.DataFrame.to_sql()引起的sqlalchemy.exc.IntegrityError: (pymysql.err.IntegrityError) (1048, "Column 'data_value' cannot be null") [SQL: 'INSERT INTO....

分析 打印空值——不存在

【Python05-BUG】pandas  pd.DataFrame.to_sql()引起的sqlalchemy.exc.IntegrityError: (pymysql.err.IntegrityError) (1048, "Column 'data_value' cannot be null") [SQL: 'INSERT INTO....

调小数据范围再看看 把一年的数据改到两天

【Python05-BUG】pandas  pd.DataFrame.to_sql()引起的sqlalchemy.exc.IntegrityError: (pymysql.err.IntegrityError) (1048, "Column 'data_value' cannot be null") [SQL: 'INSERT INTO....
【Python05-BUG】pandas  pd.DataFrame.to_sql()引起的sqlalchemy.exc.IntegrityError: (pymysql.err.IntegrityError) (1048, "Column 'data_value' cannot be null") [SQL: 'INSERT INTO....
运行成功了!!

再把数据详细展示出来看看 找到了

【Python05-BUG】pandas  pd.DataFrame.to_sql()引起的sqlalchemy.exc.IntegrityError: (pymysql.err.IntegrityError) (1048, "Column 'data_value' cannot be null") [SQL: 'INSERT INTO....

解决办法

代码问题
使用pandas的dropna删除任何含有空数据的行即可!
除此之外, 变量混淆的问题, self.df 和 df 冲突了!!!