步骤:
读取数据 2.封装数据对象(复用数据分析的代码)
3.通过connection构建MySql的链接对象,传入主机名,端口,账户,密码四个参数。
4.通过Mysql的链接对象获得游标对象,用于执行sql语句。
5.使用链接对象的select_db方法选择数据库
6.组织SQL语句,for循环遍历数据集合list,将数据集合list封装为数据对象record,再通过sql语句将record写入数据库,最后关闭MySql的链接对象
7.sql语句:
数据插入:
数据读出:
代码
from pymysql import Connection
from file_define import FileReader, TextFileReader, JsonFileReader
from data_define import Record
text_file_reader = TextFileReader(
r"C:\Users\w\Desktop\考研\课件\2011年1月销售数据.txt") # 在windows系统当中读取文件路径可以使用,但是在python字符串中\有转义的含义,如\t可代表TAB,\n代表换行,所以我们需要采取一些方式使得\不被解读为转义字符。在路径前面加r,即保持字符原始值的意思
json_file_reader = JsonFileReader(r"C:\Users\w\Desktop\考研\课件\2011年2月销售数据JSON.txt")
jan_data: list[Record] = text_file_reader.read_data()
feb_data: list[Record] = json_file_reader.read_data()
# 将两个月数据合并为一个list来存储
all_data: list[Record] = jan_data + feb_data
# 构建MySql链接对象
conn = Connection(
host="localhost", # 主机名ip
port=3306, # 端口
user="root", # 账户
password="123456" # 密码
)
# 获得游标对象,用于执行sql语句
cursor = conn.cursor()
# 选择数据库
conn.select_db("py_sql")
# 组织SQL语句
for record in all_data:
sql = f"insert into orders(order_date, order_id, money, province) values('{record.date}', '{record.order_id}', '{record.money}', '{record.province}') "
# 执行该sql语句
cursor.execute(sql)
print(sql)
# 关闭Mysql链接对象
conn.close()