在Python中生成列表並將其存儲在MySQL數據庫中的問題

2024-09-27 07:30:06 发布

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

Possible Duplicate:
convert list to string to insert into my sql in one row in python scrapy

我编写了一个脚本将数据插入mysql,如下所示,但是它将items列表中的一项344次插入到mysql数据库中。我做错什么了?在

def parse(self, response):
    hxs = HtmlXPathSelector(response)
    sites = hxs.select('//ul/li')
    con = MySQLdb.connect(
                    host="localhost",
                    user="dreamriks",
                    passwd="dreamriks",
                    db="scraped_data"
                 )
    cur = con.cursor()
    items = []
    for site in sites:
        items = [site.select('//h2').extract()]
        item = [site.select('//h3').extract()]
        meta = [site.select('//meta').extract()]
    for index in range (len( items)):
        str = items[index]
        cur.execute("""Insert into h2_meta(h2) Values(%s)""",(str))

Tags: toinresponsemysqlsiteextractitemsh2
2条回答

这个

site.select('//h2').extract()

将返回该特定站点中所有“h2”标记的列表。在附加这个列表之后,您需要迭代“items”列表中的每个元素,因为它们都包含一个列表。 第二次迭代应该如下所示。在

^{pr2}$

还要避免使用像str这样的关键字作为变量名,并在添加列表之前声明每个列表。在

这样做时,您似乎在重写列表,而不是将其附加到列表中:

for site in sites:
    items = [site.select('//h2').extract()]
    item = [site.select('//h3').extract()]
    meta = [site.select('//meta').extract()]

我想你应该把它改成:

^{pr2}$

相关问题 更多 >

    热门问题