python连接MySQL数据库并创建表导入数据

需求:

将以下字典数据写入到MySQL数据库中

Company_data = {"Company_name":"KeWoSi","Code":603486,"Total_Assets":4332090968,"Total_liabilities":1846707609,"total_equity":2485383360}

工具:

  • python环境或者Anaconda
  • pycharm编辑器
  • 电脑上有安装好的MySQL数据库
  • 导入包: import pymysql

代码详解:

1. 连接数据库并创建表

import pymysql # 导入MySQL数据库包

# 填写必要的参数——>host:数据库地址,默认写本地localhost,user:用户名,password:密码,db:连接的数据库名,port端口:3306
db = pymysql.connect(host="localhost", user="root", password="root", db="spider", port=3306)

# 创建一个游标对象
cur = db.cursor()

# 先执行删除语句:如果存在表test0614,则删除。这是为了后续调试的方便
cur.execute("drop table if exists test0614")

# 执行sql语句:创建表名为test0614的数据表,为了方便演示,以下只定义了字段名称和数据类型
cur.execute(
    "CREATE TABLE test0614 (Company_Name VARCHAR(255),Code VARCHAR(255),Total_Assets bigint(50),Total_liabilities bigint(50),total_equity bigint(50))"
)
# 附:int类型的最大值2147483647,而我们要输入的整型数据大都超过这个值,所以改成bigint(50),扩大字段的长度

2. 整合数据

# 要写入数据库的字典数据
Company_data = {"Company_name":"KeWoSi","Code":603486,"Total_Assets":4332090968,"Total_liabilities":1846707609,"total_equity":2485383360}

# 创建一个空的字符串di
di = ""

# 将字典里面的数据值转化为以逗号分隔的字符串,这是为了下面的整行的插入
for i in Company_data.keys():
    di = (di + '"%s"' + ",") % (Company_data[i])
print(di[:-1]) # 去掉最后一个逗号字符

"""
输出结果为:
"KeWoSi","603486","4332090968","1846707609","2485383360"
"""

3. 写入数据并关闭数据库

# 将整合好的字符串数据插入数据表test0614中
sql1 = "INSERT INTO test0614 VALUES (%s)" % (di[:-1]) # 第二种插入方法

# 执行插入语句
cur.execute(sql1)

# 执行commit操作,插入语句才能生效
cur.connection.commit()  

# 关闭数据库
db.close()

以下是完整的代码: ↓


import warnings
warnings.filterwarnings("ignore") # 程序可以运行,但可能会提示警告,本人的强迫症让我不得不调用warnings模块来忽略警告!


# 要写入数据库的字典数据
Company_data = {"Company_name":"KeWoSi","Code":603486,"Total_Assets":4332090968,"Total_liabilities":1846707609,"total_equity":2485383360}

# 创建一个空的字符串di
di = ""

# 将字典里面的数据值转化为以逗号分隔的字符串,这是为了下面的整行的插入
for i in Company_data.keys():
    di = (di + '"%s"' + ",") % (Company_data[i])



import pymysql # 导入MySQL数据库包

# 填写必要的参数——>host:数据库地址,默认写本地localhost,user:用户名,password:密码,db:连接的数据库名,port端口:3306
db = pymysql.connect(host="localhost", user="root", password="root", db="spider", port=3306)

# 创建一个游标对象
cur = db.cursor()

# 先执行删除语句:如果存在表test0614,则删除。这是为了后续调试的方便
cur.execute("drop table if exists test0614")

# 执行sql语句:创建表名为test0614的数据表,为了方便演示,以下只定义了字段名称和数据类型
cur.execute(
    "CREATE TABLE test0614 (Company_Name VARCHAR(255),Code VARCHAR(255),Total_Assets bigint(50),Total_liabilities bigint(50),total_equity bigint(50))"
)
# 附:int类型的最大值2147483647,而我们要输入的整型数据大都超过这个值,所以改成bigint(50),扩大字段的长度




sql1 = "INSERT INTO test0614 VALUES (%s)" % (di[:-1]) # 第二种插入方法

# 执行插入语句
cur.execute(sql1)

# 执行commit操作,插入语句才能生效
cur.connection.commit()  

# 关闭数据库
db.close()

结语:

如果各位小伙伴电脑上没有安装MySQL的话,可以关注我的微信公众号:Code启示录,里面有详细的安装方法。

趁年轻,多敲代码、多动手、多实践,我们共同加油!!!
在这里插入图片描述

你可能感兴趣的:(python连接MySQL数据库并创建表导入数据)