用python脚本填充数据库

2024-10-01 02:24:13 发布

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

我试图用下面的脚本填充我的数据库,它根本不运行查询,而是直接转到except并打印错误消息。有人能找出insertGuest()函数的问题吗:

for i in range (100):
    addGuest = "INSERT INTO hotel_guests VALUES (\"%d\", \"%s\"%s    \"%s\")", (int(i), "Name"+str(i),"gender"+str(i))
    try:
        mycursor.execute(addGuest)
        conn.commit()
        print ("10000 Guests Successfully Inserted")
    except:
        conn.rollback()
        print ("An error occurred")

我也希望数据,特别是名称有意义,但如果我能得到随机字符串,那就必须这样做。在

谢谢 夏天


Tags: 函数in脚本数据库消息for错误range
1条回答
网友
1楼 · 发布于 2024-10-01 02:24:13

SQL中的字符值是单引号的,数字没有引号。您正在尝试的Python字符串格式化需要在字符串和参数元组之间使用“%”。所以你可以改成这样:

addGuest = "INSERT INTO hotel_guests VALUES (%d, '%s', '%s')" % (int(i), "Name"+str(i),"gender"+str(i))

也就是说,为了清晰起见,最好使用str.format()和命名参数。见https://docs.python.org/2/library/string.html#format-string-syntax

您可能还希望改进except中的错误报告。您可以将其替换为:

^{pr2}$

(这假设您使用import MySQLdb as mdb导入MySQLdb,否则请相应地调整mdb名称。)

相关问题 更多 >