写爬虫时出现的错误 TypeError: sequence item 2: expected str instance, list found

运行时出现这个报错


in saveData2DB
    values(%s)'''%','.join(data)
TypeError: sequence item 2: expected str instance, list found

原代码是这样的

def saveData2DB(datalist,dbpath):
    init_db(dbpath)
    conn = sqlite3.connect(dbpath)
    cur = conn.cursor()

    for data in datalist:
        for index in range(len(data)):
            data[index] = '"' + data[index] + '"'
            sql = '''insert into movie250(
            info_link,pic_link,cname,ename,score,rated,instroduction,info)
            values(%s)'''%",".join(data)
            print(sql)
            # cur.execute(sql)
            # conn.commit()
    cur.close()
    conn.close()

我找了很久,还是不知道怎么解决这个问题。请各位老哥帮忙,这里应该怎么改

亲测有效
values (%s)'''%",".join('%s' %i for i in data)

引号使用不对吧,最好把后面拼接的值先用变量接收下 再 用%变量名 这种 , 推荐使用format形式

看起来你的 ",".join(data)里的data并不是列表而是字符串,建议你把for遍历直接删掉,换成这样试一下,我是不知道你的datalist的数据的,所以也不太确定。


sql = '''insert into movie250(
            info_link,pic_link,cname,ename,score,rated,instroduction,info)
            values(%s)'''%",".join(datalist)
            print(sql)