mirror of https://github.com/scrapy/scrapy.git
created csv iterator to replace CSVParser iteration facilities
--HG-- extra : convert_revision : svn%3Ab85faa78-f9eb-468e-a121-7cced6da292c%40319
This commit is contained in:
parent
1146e1803e
commit
5fddea58a7
|
|
@ -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))
|
||||
|
||||
Loading…
Reference in New Issue