读取CSV时,不是跳过第一行(标题),而是按编号读取行项目:
with open('info.csv') as f:
reader = csv.reader(f, delimiter=';')
next(reader, None)
for row in reader:
name = row[0]
blah = row[1]
是否有通过使用标题名称来访问行项目的内置方法?类似的东西:
with open('info.csv') as f:
reader = csv.reader(f, delimiter=';', useheader=True)
for row in reader:
name = row['name']
blah = row['blah']
其中info.csv
有一个标题行:
名;等等
约翰; Hello2
迈克; Hello2
答案 0 :(得分:27)
您正在寻找DictReader
with open('info.csv') as f:
reader = csv.DictReader(f, delimiter=';')
for row in reader:
name = row['name']
blah = row['blah']
引用链接:
创建一个像普通读者一样操作的对象,但是映射它 读入dict的信息,其密钥由可选项给出 fieldnames参数。 ... 如果省略fieldnames参数,则为第一行中的值 csvfile将用作字段名。
答案 1 :(得分:4)
您可以使用csv.DictReader实例来解决此问题。
文档示例:
>>> with open('names.csv') as csvfile:
... reader = csv.DictReader(csvfile)
... for row in reader:
... print(row['first_name'], row['last_name'])
...
Eric Idle
John Cleese
答案 2 :(得分:3)
是的,有。这就是csv.DictReader
函数的作用 - 将行提供为可迭代的dicts。