需求:
将以下字典数据写入到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启示录,里面有详细的安装方法。
趁年轻,多敲代码、多动手、多实践,我们共同加油!!!