1.mysql 表中的时间日期设置为data数据类型,利用sql语句创建表
#1.打开数据库管理系统软件利用sql语句创建orders数据表
use py_sql;
create table orders(
order_date date, #时间日期
order_id varchar(255), #订单id
money int, #订单费用
province varchar(10) #订单省份
);
2.利用pycharm软件编写python语句读取文件中的数据插入到数据表中
import json
from pymysql import Connection
json_date=[]
json_order_id=[]
json_money=[]
json_province=[]
data_file = open("C:/Users/47533/Desktop/2011年1月销售数据.txt", "r", encoding="UTF-8")
data_file2 = open("C:/Users/47533/Desktop/2011年2月销售数据JSON.txt", "r", encoding="UTF-8")
for line in data_file.readlines():
data_list = line.strip()
data_list = data_list.split(",")
json_date.append(data_list[0])
json_order_id.append(data_list[1])
json_money.append(data_list[2])
json_province.append(data_list[3])
for line in data_file2.readlines():
line_dict = json.loads(line)
json_date.append(line_dict["date"])
json_order_id.append(line_dict["order_id"])
json_money.append(line_dict["money"])
json_province.append(line_dict["province"])
# print(json_date)
# print(json_order_id)
# print(json_money)
# print(json_province)
conn = Connection(
host="localhost",
password="这里输入你的数据库密码",
user="root",
port=3306,
autocommit=True,
charset='utf8'
)
conn.select_db("py_sql")
cursor=conn.cursor()
for i in range(len(json_date)):
sql=f"insert into orders(order_date,order_id,money,province)\ values('{json_date[i]}','{json_order_id[i]}',{int(json_money[i])},'{json_province[i]}')"
cursor.execute(sql)
result=cursor.fetchall()
print(result)
3编写程序将数据库表中的数据再以JSON格式存储到指定文件中
from pymysql import Connection
import json
f = open("C:/Users/47533/Desktop/sale.txt", "w", encoding="UTF-8")
# 构建MySQL链接对象
conn = Connection(
host="localhost",
port=3306,
user="root",
password="475336117",
autocommit=True
)
# 获得游标对象
cursor = conn.cursor()
# 选择数据库
conn.select_db("py_sql")
# 查询
cursor.execute("SELECT * FROM orders")
result = cursor.fetchall()
sale_data_dict={"order_date":"none","order_id":"none","money":0,"province":"none"}
for r in result:
sale_data_dict["order_date"]=r[0].strftime('%Y-%m-%d')
"""这里需要使用datatime.data.strftime函数可将数据库表中的'datatime.data(2011,1,12)'时间日期转换为'2011-1-12'格式
"""
sale_data_dict["order_id"]=r[1]
sale_data_dict["money"]=r[2]
sale_data_dict["province"]=r[3]
f.write(str(sale_data_dict))
"""f.write(str(sale_data_dict))也可以使用json.dumps(sale_data_dict)以json格式写入文件中,不过应用json.dumps()方法时需注意utf-8编码会改变中文字符的输出形式 列如:"湖南省"会变成"u6e56\u5357\u7701"这种utf-8对应的字符串的形式输出
"""
f.write("\n")
# 关闭MySQL链接对象
conn.close()
f.close()
sale_data_dict["order_date"]=r[0].strftime('%Y-%m-%d')
"""这里需要使用datatime.data.strftime函数可将数据库表中的'datatime.data(2011,1,12)'时间日期转换为'2011-1-12'格式
"""
不使用.strtime函数时会报错,并且日期输出的格式是datatime.data(2011,1,1) 而不是 2011-1-1
运行结果:
使用 .strftime('%Y-%m-%d') 方法时会以 “2011-1-1” 格式正常输出:
使用 .strftime('%Y-%m-%d') 方法的代码:
运行结果: