python提交量表到数据库:文件读取和mysql调用笔记
摘要: 本文主要介绍了如何使用 Python 读取文件并将数据提交到 MySQL 数据库中。文中提供了文件读取和 MySQL 调用的相关代码,包括如何判断字段是否存在、插入数据、更新数据以及提交事务等操作。
文件读取模块
一个经典的递归。
需要注意点是如果输入的不是绝对路径,会查找当前工作目录(相对目录)。
def dir(now:str):
result=[]
for i in os.listdir(now):
if os.path.isdir(i) and i[:1] != '.':
result += dir(now+'/'+i)
if ".json" in i:
result += [now]
return result
这里实现了定位所有.json的位置。
关于python的list.append()
如果后加字典,会以类似软链接的形式后加:
res = []
tmp = {"A":"a, "B":"b"}
s = "Apple"
for i in s:
tmp[i]=i
res.append(tmp)
如果只是需要改一点点参数的话,可以直接把对象写哎函数传参里面,不用单开一个变量。
MySQL
自然语言编程大师)
加载模块
import mysql.connector
cnx = mysql.connector.connect(user='', password='', host='', database='')
#查询指定字段是否存在
def has_scale(scale_id:int):
cursor = cnx.cursor()
select_query = """
SELECT id FROM questionnaires
WHERE id = %s
LIMIT 1
"""
cursor.execute(select_query, (scale_id,))
res = cursor.fetchone() is not None
cursor.close()
return res
# 当字段不存在时可以插入
def insert_scale(scale):
cursor = cnx.cursor()
insert_query = """
INSERT INTO questionnaires (id, title, introduction, cid, res, options)
VALUES (%s, %s, %s, %s, %s, %s)
"""
data = (scale["id"], scale["title"], scale["introduction"], scale["category"], str(scale["res"]), str(scale["options"]))
cursor.execute(insert_query, data)
cursor.close()
# 其实update会更新所有符合条件的记录,但是我用主键作为条件
def update_scale(scale):
cursor = cnx.cursor()
update_query = """
UPDATE questionnaires
SET title = %s, introduction = %s, cid = %s, res = %s, options = %s
WHERE id = %s
"""
data = (scale["title"], scale["introduction"], scale["category"], str(scale["res"]), str(scale["options"]),scale["id"])
cursor.execute(update_query, data)
cursor.close()
# 记得提交并断联
def commit():
cnx.commit()
cnx.close()
值得注意的是,好像python中三个"可以换行书写)没有仔细研究过。