之前写了一个爬去豆瓣音乐Top250榜单的Python程序,然后试着把爬到的数据写到MySQL数据库中,但是在写入数据库是一直报错

“can’t concat tuple to bytes”

开始的把写入数据库代码是这样的,一直找不到哪里错了。后来我把sql命令打印出来一看,鬼鬼,所有要写入的数据VALUES成了一串字符串。本来以为既然用了%s,就会变成三个。

def save_to_mysql(title,url,info):
    db = pymysql.connect('','','','')
    cursor = db.cursor()
    sql = "INSERT INTO Info VALUES(%s,%s,%s)"%(str(title),str(url),str(info))
    print(sql)
    cursor.execute(sql)
    db.commit()
    db.close()

然后我就把sql改成了下面的样子,就是给每个加了个单引号,写入了一部分又报错,再打印一看,有的数据里面包含了单引号。

sql = "INSERT INTO Info VALUES(\'%s\',\'%s\',\'%s\')"%(str(title),str(url),str(info))

改成双引号之后就好了。

sql = "INSERT INTO Info VALUES(\"%s\",\"%s\",\"%s\")"%(str(title),str(url),str(info))

Logo

更多推荐