在正式动手之前,我们需要先安装 PyMySQL 模块。
(1)使用 pip 安装, 清华镜像:
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pymysql
(2)使用 conda 安装
conda install pymysql
Step2: 从 CSV 文件导入数据到 MySQL 数据表
安装好以后,我们来进行第二步操作,从 CSV 文件导入数据到 MySQL 数据表。与内置的 SQLite 模块一样, PyMySQL 也遵循 DB-API 规范,因此我们前面开发的大多数代码经过简单修改即可使用,以下代码中主要注释了与 SQLite 操作的不同之处。
============================================================================
import pymysql
============================================================================================
===========================================================================
===================================================================================
=======================================================================
cn = pymysql.connect(host=‘localhost’, user=‘pandas’, password=‘pandas’, db=‘pandas’)
================================================================================
==================================================================================
cur = cn.cursor()
建表SQL语句, 小技巧: if not exists 不会引起表已经存在的错误
=======================================================================================================
MySQL 使用的是 auto_increment , 注意有个下划线
===================================================================================================
artist_create_table = “”"
create table if not exists artist(
id integer primary key auto_increment not null,
name varchar(255)
)
“”"
try:
cur.execute(artist_create_table)
print(" 成功建表 ")
except:
pass
插入语句 , 使用 %(id)s 意味着我们会用字典对象替换数据
=============================================================
==================================
====================================================================================
artist_insert =“”"
insert into artist(id, name) values ( %(id)s, %(name)s )
“”"
==============================================================================
========================================================================
import csv
==============================================================================
with open(‘artist.csv’, newline=’’) as csvfile:
用 DictReader 类, 方便开发
reader = csv.DictReader(csvfile)
按行遍历csv 文件
for row in reader:
try:
按行执行 SQL 语句, 注意, 这里使用 字符串的format方法将数据替换进去
如果可以相信数据的安全性可以这样做, 如果数据来自互联网, 需要用另一种更加安全的方式
cur.execute(artist_insert, {“id”: row[‘id’], “name”: row[‘name’] } )
except Exception as e:
print(e)
print(" 成功导入 CSV 数据" )
===================================================================
cn.commit()
====================================================================
cn.close()
Step3: 将数据表与计算结果导出为 CSV 文件
接下来我们使用 execute 方法获取数据,然后输出到 CSV 文件,与 SQLite 代码类似:
============================================================================
import pymysql
====================================================================
cn = pymysql.connect(host=‘localhost’, user=‘pandas’, password=‘pandas’, db=‘pandas’)
=====================================================================
cur = cn.cursor()
====================================================================
cn = pymysql.connect(host=‘localhost’, user=‘pandas’, password=‘pandas’, db=‘pandas’)
=====================================================================
cur = cn.cursor()