将JSON数据插入到MySQL数据库中,主要有以下4个步骤:
- 解析JSON数据,提取需要的信息;
- 连接MySQL数据库;
- 创建数据库表;
- 将数据插入到数据库表中。
下面我来详细讲解一下每一个步骤,并提供两个示例:
1. 解析JSON数据
我们可以使用python自带的json库来解析JSON数据,可参考下面的代码:
import json
# 定义JSON数据
json_str = '''
[
{
"name": "Alice",
"age": 18,
"gender": "female",
"city": "Shanghai"
},
{
"name": "Bob",
"age": 20,
"gender": "male",
"city": "Beijing"
}
]
'''
# 将JSON数据解析为python的字典列表
data = json.loads(json_str)
# 提取需要的信息
for item in data:
name = item['name']
age = item['age']
gender = item['gender']
city = item['city']
# 这里可以将提取到的数据存储到一个列表中,供后续使用
print(name, age, gender, city)
2. 连接MySQL数据库
我们可以使用python自带的pymysql库来连接MySQL数据库,可参考下面的代码:
import pymysql
# 连接数据库
conn = pymysql.connect(
host='localhost',
port=3306,
user='root',
password='123456',
db='test',
charset='utf8mb4'
)
# 关闭数据库连接
conn.close()
3. 创建数据库表
我们可以使用pymysql库中的execute方法来执行SQL语句,从而创建数据库表,可参考下面的代码:
import pymysql
# 连接数据库
conn = pymysql.connect(
host='localhost',
port=3306,
user='root',
password='123456',
db='test',
charset='utf8mb4'
)
# 创建表
sql = '''
CREATE TABLE IF NOT EXISTS student (
id INT NOT NULL AUTO_INCREMENT,
name VARCHAR(100) NOT NULL,
age INT NOT NULL,
gender VARCHAR(10) NOT NULL,
city VARCHAR(100) NOT NULL,
PRIMARY KEY (id)
);
'''
with conn.cursor() as cursor:
cursor.execute(sql)
conn.commit()
# 关闭数据库连接
conn.close()
4. 将数据插入到数据库表中
最后,我们可以使用pymysql库中的execute方法来执行SQL语句,将数据插入到数据库表中,可参考下面的代码:
import json
import pymysql
# 定义JSON数据
json_str = '''
[
{
"name": "Alice",
"age": 18,
"gender": "female",
"city": "Shanghai"
},
{
"name": "Bob",
"age": 20,
"gender": "male",
"city": "Beijing"
}
]
'''
# 将JSON数据解析为python的字典列表
data = json.loads(json_str)
# 连接数据库
conn = pymysql.connect(
host='localhost',
port=3306,
user='root',
password='123456',
db='test',
charset='utf8mb4'
)
# 将数据插入到数据库表中
sql = 'INSERT INTO student(name, age, gender, city) VALUES (%s, %s, %s, %s);'
with conn.cursor() as cursor:
for item in data:
name = item['name']
age = item['age']
gender = item['gender']
city = item['city']
cursor.execute(sql, (name, age, gender, city))
conn.commit()
# 关闭数据库连接
conn.close()
以上两个示例中,第一个代码块用于解析JSON数据,将其中的数据提取出来,第二个代码块用于连接MySQL数据库,第三个代码块用于创建数据库表,第四个代码块用于将数据插入到数据库表中。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python实现将json多行数据传入到mysql中使用 - Python技术站