python提交量表到数据库:文件读取和mysql调用笔记

2024-05-20T02:19:00

文件读取模块

一个经典的递归。
需要注意点是如果输入的不是绝对路径,会查找当前工作目录(相对目录)。

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中三个"可以换行书写)没有仔细研究过。

当前页面是本站的「Baidu MIP」版。发表评论请点击:完整版 »