DataFrame存到MySQL,报错:pymysql.err.DataError: (1406, "Data too long for column 'developer' at row 250")

今天在将DataFrame存到MySQL时一直报错:
pymysql.err.DataError: (1406, “Data too long for column ‘developer’ at row 250”)

先放代码:

df = pd.read_csv('E:\AllWorkSpace\python_workspace\FM\\apps0507.csv')
print(df)
# 将数据写入mysql的数据库,但需要先通过sqlalchemy.create_engine建立连接,且字符编码设置为utf8,否则有些latin字符不能处理
connect = create_engine('mysql+pymysql://root:123456@localhost:3306/rec_sys?charset=utf8')
pd.io.sql.to_sql(df,'apps', connect, schema='rec_sys', if_exists='append')

乍一看,还以为哪里数据太长出问题了,找到报错第250行,发现‘developer’列数据有点问题,后面居然有一个图标:‘Checkout Chick 🐥’。
也不知道怎么存进去的。。。把这个图标删掉之后就可以存储了。

修改后的完整代码:

from sqlalchemy import create_engine
import pandas as pd
import warnings
warnings.filterwarnings('ignore')

df = pd.read_csv('E:\AllWorkSpace\python_workspace\FM\\apps0507.csv')
# 这里属于人工修改,我提前找到这行有问题
if df.iloc[249,3]=='Checkout Chick 🐥':
    df.iloc[249, 3] = 'Checkout Chick'
print(df)
# 将数据写入mysql的数据库,但需要先通过sqlalchemy.create_engine建立连接,且字符编码设置为utf8,否则有些latin字符不能处理
connect = create_engine('mysql+pymysql://root:123456@localhost:3306/rec_sys?charset=utf8')
pd.io.sql.to_sql(df,'apps', connect, schema='rec_sys', if_exists='append')

数据库操作方法及参数意义不多解释,可以参考:
https://blog.csdn.net/qq_38486203/article/details/93307930

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值