使用DictReader从csv文件获取第一条记录

时间:2017-12-20 13:47:11

标签: python csv

我正在尝试使用DictReader从csv文件中获取第一条记录作为dict。我无法理解,因为文档只讨论迭代读者对象

{{1}}

是否有任何函数可以将第一条记录作为trip_reader [0]?

2 个答案:

答案 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)