csv dictreader中的多个列表



我有一个简单的CSV文件,里面有两个键,"标题";以及";作者"一堆数据。

我想列一个标题清单,然后列一个作者清单。我的代码如下。它打印的是title列表,而不是author列表,为什么?

import csv
with open("books.csv", encoding="utf-8-sig") as books_csv:
books_reader = csv.DictReader(books_csv)
title_list = [book["Title"] for book in books_reader]
author_list = [book["Author"] for book in books_reader]
print(title_list)
print(author_list)```

books_reader是一个迭代器。当您使用列表理解来定义title_list时,您耗尽了迭代器,使books_reader为空。这就是为什么当您去定义author_list时,它什么也不返回。对这个问题使用列表理解不是正确的解决方法。您可能正在寻找以下内容:

import csv
title_list = []
author_list = []
with open("books.csv", encoding="utf-8-sig") as books_csv:
books_reader = csv.DictReader(books_csv)
for book in books_reader:
title_list.append(book["Title"])
author_list.append(book["Author"])

最新更新