一、前言
- 学习了如何把本地文件的数据读取后经过一系列处理后写入数据库,就想着把数据库的数据写入到本地文件,实现互写的功能。
- 把本地文件读取后写入数据库参考链接:https://www.jianshu.com/p/8610dcc19f0f
二、代码
"""
操作步骤:
1. 链接数据库
2. 读取文件--插入到列表中
3. 列表转为json字符串---这点要注意,查了资料才搞出来
4. 写文件到本地txt文件中
"""
import json
from pymysql import Connection
# 创建数据库链接对象
conn = Connection(
host='localhost',
port=3306,
user='root',
password='root',
)
# 创建游标对象
cursor = conn.cursor()
# 选择数据库
conn.select_db('my_data_base')
# 执行sql语句
cursor.execute('select * from py_data_static')
result: tuple = cursor.fetchall()
list_data: list = []
for row in result:
list_data.append({
'date': row[0],
'order_id': row[1],
'money': row[2],
'province': row[3]
})
# 写文件
with open('./从数据库读取到的数据存入本地文件.txt', 'w', encoding='utf-8') as f:
for data in list_data:
# 把数据库读取到的数据转换为json字符串,需要设置default=str,这里踩了坑 不传递这个关键字参数会报错
# 重点!!!!
list_data_str = json.dumps(data, default=str, ensure_ascii=False)
f.write(list_data_str + "\n")
# 关闭数据库
conn.close()
三、截图
四、注意事项
- 在把读取到的数据转json字符串的时候出现了问题,需要用关键字传参的方式对某个参数进行传递json.dumps(data, default=str, ensure_ascii=False),还需要对中文进行特殊处理
tips:参考链接:https://blog.csdn.net/IT_xiao_bai/article/details/86686014