我正在使用scrapy来抓取一个网页,然后我将其添加到postgres数据库中。 第一个INSERT语句工作正常,我可以从数据库中选择项目。第二个似乎插入数据,但所有字段都是空白
date | count
---------------------------+-------
04/2013 |
03/2013 |
02/2013 |
这是我的代码:
#Database init
self.conn = psycopg2.connect("dbname='dataproject' user='xxxx' host='localhost' password='xxxxxx'")
self.cursor = self.conn.cursor()
#CSV files
self.DatavisItemCsv = csv.writer(open('DatavisTable.csv', 'wb'))
self.DatavisItemCsv.writerow(['dates', 'counts'])
def process_item(self, item, spider):
self.DatavisItemCsv.writerow([item['dates'], item['counts']])
date_list = item['dates']
count_list = item['counts']
for s in date_list:
self.cursor.execute('INSERT INTO ufo_info(date) VALUES (%s);', [s])
for c in count_list:
self.cursor.execute('INSERT INTO ufo_info(count) VALUES (%s);', [c])
self.conn.commit()
这与我的for循环有什么关系吗?数据竞争?
答案 0 :(得分:1)
for s, c in zip(date_list, count_list):
self.cursor.execute(
'INSERT INTO ufo_info(date, count) VALUES (%s, %s);'
, (s, c)
)