Pandas写入数据到MySql

Pandas写入数据到MySql,第1张

import pandas as pd

from sqlqlchemy import create_engine

def getData(path):

        data = pd.read_excel(path)

        return data

def writeData(data):

        conn = create_engine(

                                           "mysql+pymysql://root:keijay@localhost:3306/db_name?charset=utf8")

        pd.io.sql.to_sql(data, "table_name", con = conn,index = False)

if __name__ == "__main__":

        path = "E:\datasets\test.xlsx"

        data = getData(path)

         writeData(data)

遇到问题:

  1、写入完成后有告警:

        解决方法:

              pip install mysql-connect-python -i https://pypi.douban.com/simple

              将:

                    conn = create_engine(

"mysql+pymysql ://root:keijay@localhost:3306/db_name?charset=utf8")

              修改为:

                      conn = create_engine(

" mysql+mysqlconnector ://root:keijay@localhost/test_python?charset=utf8")

如果该文件已存在可以选择目标表。

使用pandas自带的数据导入向导,右击导入的数据库,浏览打开要导入的csv文件,进行必要的设置,如果该文件已存在,因此可以直接选择目标表。

pandas是基于NumPy的一种工具,该工具是为了解决数据分析任务而创建的。

一、问题原因

mysql数据库的存储过程创建语句之中需要使用begin表示存储过程要执行的语句从这里开始,在结尾使用end表示存储过程的语句要结束了。而在mysql数据库之中无论是查询还是添加语句都要使用分号去分隔,但是在存储过程之中创建sql语句的时候却被mysql数据库的编译器把分号当做了结束语句,没有end就被检测成语法错误了。

二、解决方法

一般来说上面这个问题都是因为mysql数据库版本所导致的,如果确定语句没有错误的话就要更新版本或者将语句的结束符改成别的符号,只要能够让mysql数据库编译器解析到end就可以了。使用delimiter即可更改sql语句结束符,示例如下:

delimiter // --更改结束符create procedure course_id_name(in cid varchar(20))beginselect namefrom coursewhere id = cidend//delimiter --将结束符换回分号

以上就是关于“mysql数据库存储过程语法报错为什么?原因和解决方法看这里”的全部内容了,想要了解更多python的实用知识和代码示例可以持续关注这个频道,每次更新都会有很多新的知识技术分享给大家。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9410457.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存