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 yearsHow 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 addnewline=''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!