我正在尝试使用DictReader从csv文件中获取第一条记录作为dict。我无法理解,因为文档只讨论迭代读者对象
{{1}}
是否有任何函数可以将第一条记录作为trip_reader [0]?
答案 0 :(得分:1)
要获取没有for
循环的CSV的第一行:
with open(filename, 'r', newline='') as f:
r = csv.reader(f, delimiter=',')
return next(r)
当然,如果你有一排标题,你就必须跳过"跳跃"在它上面:
with open(filename, 'r', newline='') as f:
r = csv.reader(f, delimiter=',')
_ = next(r) # hold header row in throwaway variable
return next(r)
上下文管理器中的newline=''
用于Python3 +(也许是Python2的更高版本),但对于Python2.7.8及更早版本,您可以省略。
答案 1 :(得分:1)
由于您可以对trip_reader
进行迭代,因此可以在其上调用next()
以获取下一个(在本例中为第一行):
with open(filename, 'r') as f_in:
# Use the csv library to set up a DictReader object.
trip_reader = csv.DictReader(f_in)
# Use a function on the DictReader object to read the
# first trip from the data file and store it in a variable.
row = next(trip_reader)
pprint(row)