TypeError:无法将“list”对象转换为str隐式SQLite3检索D

2024-09-23 22:23:51 发布

您现在位置:Python中文网/ 问答频道 /正文

def course_id(enrolment_id):
    con = None

    try:
        con = lite.connect('C:/Users/Ethan/Desktop/SAT/SiemensAssessmentTool.db')
        with con:
            cur = con.cursor()

            cur.execute("SELECT course_id FROM Enrolment WHERE enrolment_id = '"+ enrolment_id+ "';")

            rows = cur.fetchall()
            courseids=[]
            for row in (rows):
                courseids = row
                return courseids

    finally:
        if con:
            con.close()

我试图用这段代码检索一些整数,因为我将把它连接到另一个函数,以便从数据库中找到其他数据。我得到的错误是当我将它与其他函数连接时:

^{pr2}$

我得到一个错误:

cur.execute("SELECT course_id FROM Enrolment WHERE enrolment_id = '"+ enrolment_id+ "';")
TypeError: Can't convert 'list' object to str implicitly

我想这可能和course\u id函数有关,但我不确定。。提前谢谢你


Tags: 函数fromidexecute错误whereconselect
1条回答
网友
1楼 · 发布于 2024-09-23 22:23:51

TypeError: Can't convert 'list' object to str implicitly

显然,问题是enrolment_id是一个列表,请检查您将什么作为参数传递到course_id()中。在

作为补充说明,您不应该通过字符串连接构造查询-这会导致类型转换问题,并使您的代码容易受到SQL injections-参数化查询的影响:

cur.execute("SELECT course_id FROM Enrolment WHERE enrolment_id = ?", (enrolment_id, ))

在如何获得查询结果方面还有一个问题。假设您想从数据库中获得一个课程ID,请使用fetchone()

^{pr2}$

相关问题 更多 >