如何将列表类型的项目放入数据库?

时间:2017-03-12 01:19:13

标签: python scrapy

我使用Scrapy写一个蜘蛛从网站上获取一些东西。我想把这个项目放到数据库中。在我的代码中,有五个项目,两个项目是unicode类型,所以我可以把它放到数据库中直接,但两个项目是列表类型,我怎样才能把它放入数据库?这是我的代码,关于类型列表的项目:

descr = sel.xpath(
            '//*[@id="root"]/div/main/div/div[2]/div[1]/div[2]/div/div/div/div[2]/div/div/span/p[1]/text()').extract()
        print 'type is:', type(descr)
        answer_time = sel.xpath(
            '//*[@id="root"]/div/main/div/div[2]/div[1]/div[2]/div/div/div/div[2]/div/div/div/a/span/@data-tooltip').extract()
        print 'type is:', type(answer_time)

1 个答案:

答案 0 :(得分:0)

它应该在很大程度上取决于数据在数据库中的使用方式以及您使用的数据库类型。

如果您正在使用MongoDB之类的东西,它完全支持将列表添加为记录的一部分。某些关系数据库(如postgresql)支持JSON列类型。

除此之外,还有两个主要选择。 1)使用类似JSON的内容将列表转换为字符串,并将其与其他unicode列一起保存在文本列中。 2)充分利用关系数据库并使用第二个表来存储one:many关系。

将它转换为字符串变得更容易/更快。非常适合快速原型设计。但是,如果要读取数据以便在任何不小的数据集上进行分析,那么使用多个表可以获得巨大的效率。