def test_parse_csv(self): f = cStringIO.StringIO('name,age\nAvon,30\nOmar,29\nJoe,45\n') items = list(utils.parse_csv(f)) self.assertEqual(items, [ { 'name': 'Avon', 'age': '30' }, { 'name': 'Omar', 'age': '29' }, { 'name': 'Joe', 'age': '45' } ])
def parse(self, response): symbol = self._get_symbol_from_url(response.url) try: file_like = cStringIO.StringIO(response.body) rows = utils.parse_csv(file_like) for row in rows: item = PriceItem(symbol=symbol) for k, v in row.iteritems(): item[k.replace(' ', '_').lower()] = v yield item finally: file_like.close()
def test_parse_csv(self): f = cStringIO.StringIO('name,age\nAvon,30\nOmar,29\nJoe,45\n') items = list(utils.parse_csv(f)) self.assertEqual(items, [{ 'name': 'Avon', 'age': '30' }, { 'name': 'Omar', 'age': '29' }, { 'name': 'Joe', 'age': '45' }])