Python 3.2 skip a line in csv.DictReader
22,590
Solution 1
You use next(reader)
instead.
Source: csv.DictReader documentation
Solution 2
Since Python 2.6 you should use next(foo) instead of foo.next().
Solution 3
It was considered a mistake in python2 to have the method called next()
instead of __next__()
next(obj)
now calls obj.__next__()
just like str
, len
etc. as it should.
You usually wouldn't call obj.__next__()
directly just as you wouldn't call obj.__str__()
directly if you wanted the string representation of an object.
Handy to know if you find yourself writing unusual iterators
Related videos on Youtube

Comments
-
paragbaxi over 3 years
How do I skip a line of records in a CSV when using a DictReader?
Code:
import csv reader = csv.DictReader(open('test2.csv')) # Skip first line reader.next() for row in reader: print(row)
Error:
Traceback (most recent call last): File "learn.py", line 3, in <module> reader.next() AttributeError: 'DictReader' object has no attribute 'next'
-
John Machin over 12 yearsnothing to do with this problem, but you should be opening your file like this:
open('test2.csv', newline='')
... see the csv.reader docs -
paragbaxi over 12 yearsI read the CSV.Reader doc. This attribute appears to help preserve multiline CSVs. Since my CSV file is multiline, would it still be prudent to add
newline=''
to my open command?
-
-
Seth Johnson over 12 yearsThis is because it's Python 3, not Python 2.
-
tarikki over 6 yearsThanks for the context!