(一)python 文件写入mysql数据库中时间日期用到的datatime.data.strftime

该文章展示了如何使用SQL语句在MySQL中创建包含日期字段的数据表,然后用Python读取文本文件内容并插入到表中。接着,从数据库中检索数据,将日期格式化,并将结果保存为JSON格式的文件。过程中涉及了pymysql库和日期的strftime方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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')  方法的代码:

运行结果:

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

irrguask

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值