首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在使用DictReader读取csv时不打印行。

在使用DictReader读取csv时不打印行。
EN

Stack Overflow用户
提问于 2021-12-22 17:29:19
回答 1查看 74关注 0票数 1

我创建了一个csv文件如下所示:

代码语言:javascript
复制
%%writefile employee2.csv
name, department, birthday month
John Smith, Accounting, November, 6
Erica Meyers, IT, March

现在我想用DictRead读取csv文件的每一行,但它不读取第二行(John )

代码语言:javascript
复制
import csv
with open('employee2.csv', newline='') as csv_file:
    csv_reader = csv.DictReader(csv_file, restkey='day', skipinitialspace=True)
    line_count = 0
    for row in csv_reader:
        if line_count == 0:
            print(f'Column names are: {", ".join(row)}')
        else:
            print(f'{row["name"]} works in the {row["department"]} department, and was born in {row["birthday month"]}.')
        line_count += 1

产出如下:

代码语言:javascript
复制
Column names are: name, department, birthday month, day
Erica Meyers works in the IT department, and was born in March.

现在,我有两个问题: 1-为什么它不读取文件的第二行并打印出来? 2-如果我想将restkey添加到print命令中,我如何做到这一点?

诚挚的问候,

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-12-22 19:52:31

使用csv.DictReader时,在开始逐行读取文件(for row in csv_reader:)之前,它将独立地读取文件。不需要查看是否正在阅读第一行(对于fieldnames)。

若要将restkey添加到打印中,请将其从行字典中删除,然后打印弹出的值。见this

代码语言:javascript
复制
import csv
with open('tmp1.csv', newline='') as csv_file:
    csv_reader = csv.DictReader(csv_file, restkey='day', skipinitialspace=True)
    cols = csv_reader.fieldnames
    print('Column names are: ', cols)
    for row in csv_reader:
        day = row.pop('day', None)
        if day != None:
            print(f'{row["name"]} works in the {row["department"]} department, and was born on {row["birthday month"]} {day[0]}.')
        else:
            print(f'{row["name"]} works in the {row["department"]} department, and was born in {row["birthday month"]}.')

指纹:

代码语言:javascript
复制
Column names are:  ['name', 'department', 'birthday month']
John Smith works in the Accounting department, and was born on November 6.
Erica Meyers works in the IT department, and was born in March.
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70452916

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档