保存Python中的dict数据到MySQL数据库通常需要以下步骤:
-
安装相关依赖库
-
安装MySQL-python包,提供Python和MySQL之间的连接和数据类型转换。可以使用pip命令进行安装:
pip install MySQL-python
- 安装pymysql包,提供Python和MySQL之间的连接和数据类型转换。可以使用pip命令进行安装:
pip install pymysql
- 安装MySQL Connector/Python,这是Python的MySQL官方驱动程序。可以从官方网站下载安装包,或使用pip安装:
pip install mysql-connector-python
- 连接MySQL数据库
使用MySQL库提供的connect()方法连接数据库。需要提供数据库地址、用户名、密码、数据库名等连接参数。示例代码:
import MySQLdb
# 建立数据库连接
conn = MySQLdb.connect(host='localhost', user='root', passwd='password', db='test')
# 创建游标
cursor = conn.cursor()
- 创建表
可以使用CREATE TABLE语句创建表格,并指定表格的结构。示例代码:
# 创建表
cursor.execute("""
CREATE TABLE IF NOT EXISTS mytable (
id INT(11) NOT NULL AUTO_INCREMENT,
name VARCHAR(50) NOT NULL,
age INT(11) NOT NULL,
PRIMARY KEY (id)
)
""")
- 插入数据
将Python字典数据转换为SQL语句并执行插入操作。可以使用execute()方法执行SQL语句。
data = {'name': 'Tom', 'age': 20}
# 插入数据
keys = ', '.join(data.keys())
values = ', '.join(['%s'] * len(data))
sql = "INSERT INTO mytable ({keys}) VALUES ({values})".format(keys=keys, values=values)
cursor.execute(sql, tuple(data.values()))
# 提交数据
conn.commit()
- 查询数据
# 查询数据
cursor.execute("SELECT * FROM mytable")
rows = cursor.fetchall()
for row in rows:
print(row)
示例代码:
import MySQLdb
# 建立数据库连接
conn = MySQLdb.connect(host='localhost', user='root', passwd='password', db='test')
# 创建游标
cursor = conn.cursor()
# 创建表
cursor.execute("""
CREATE TABLE IF NOT EXISTS mytable (
id INT(11) NOT NULL AUTO_INCREMENT,
name VARCHAR(50) NOT NULL,
age INT(11) NOT NULL,
PRIMARY KEY (id)
)
""")
# 插入数据
data = {'name': 'Tom', 'age': 20}
keys = ', '.join(data.keys())
values = ', '.join(['%s'] * len(data))
sql = "INSERT INTO mytable ({keys}) VALUES ({values})".format(keys=keys, values=values)
cursor.execute(sql, tuple(data.values()))
conn.commit()
# 查询数据
cursor.execute("SELECT * FROM mytable")
rows = cursor.fetchall()
for row in rows:
print(row)
# 关闭游标和数据库连接
cursor.close()
conn.close()
另一个示例代码:
import pymysql
# 建立数据库连接
conn = pymysql.connect(host='localhost', port=3306, user='root', password='password', db='test', charset='utf8mb4')
cursor = conn.cursor()
# 创建表
cursor.execute("""
CREATE TABLE IF NOT EXISTS user (
id INT(11) NOT NULL AUTO_INCREMENT,
name VARCHAR(50) NOT NULL,
age INT(11) NOT NULL,
PRIMARY KEY (id)
)
""")
# 插入数据
data_1 = {'name': 'Tom', 'age': 20}
data_2 = {'name': 'Jerry', 'age': 18}
for data in (data_1, data_2):
keys = ', '.join(data.keys())
values = ', '.join(['%s'] * len(data))
sql = "INSERT INTO user ({keys}) VALUES ({values})".format(keys=keys, values=values)
cursor.execute(sql, tuple(data.values()))
conn.commit()
# 查询数据
cursor.execute("SELECT * FROM user")
rows = cursor.fetchall()
for row in rows:
print(row)
# 关闭游标和数据库连接
cursor.close()
conn.close()
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python保存dict字典类型数据到Mysql并自动创建表与列 - Python技术站