created csv iterator to replace CSVParser iteration facilities

--HG--
extra : convert_revision : svn%3Ab85faa78-f9eb-468e-a121-7cced6da292c%40319
This commit is contained in:
samus_ 2008-10-17 21:53:40 +00:00
parent 1146e1803e
commit 5fddea58a7
1 changed files with 23 additions and 0 deletions

View File

@ -0,0 +1,23 @@
import csv
from scrapy.http import Response
from scrapy import log
def csv_iter(response, delimiter=None, headers=None):
if delimiter:
csv_r = csv.reader(response.body.to_unicode().split('\n'), delimiter=delimiter)
else:
csv_r = csv.reader(response.body.to_unicode().split('\n'))
if not headers:
headers = csv_r.next()
while True:
node = csv_r.next()
if len(node) != len(headers):
log.msg("ignoring node %d (length: %d, should be: %d)" % (csv_r.line_num, len(node), len(headers)), log.WARNING)
continue
yield dict(zip(headers, node))