2013-05-08 97 views
1

我正在使用scrapy來抓取一個網頁,然後我添加到postgres數據庫。 第一個INSERT語句正常工作,我可以從數據庫中選擇項目。第二個似乎插入數據,但所有的字段爲空多個插入語句失敗postgresql/psycopg2

  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循環?數據競賽?

回答

1
for s, c in zip(date_list, count_list): 
    self.cursor.execute(
     'INSERT INTO ufo_info(date, count) VALUES (%s, %s);' 
     , (s, c) 
    ) 
+0

非常順利,比你先生! – Donna 2013-05-08 15:24:16