我有几个CSV文件,其中包含有关不同用户的信息。每个文件都有3或4列,第一行是标题和下面的相应信息。如:按标题解析CSV文件
Username FirstName LastName Occupation
JSmith12 John Smith Staff
一些列的顺序错误或CSV的一半丢失的文件,所以我不能简单地做row.split(“”)[0]让所有的所有CSV文件中的用户名。
这里我的问题是:我将如何能够通过标题标题而不是按行读取和读取所有列信息。
我有几个CSV文件,其中包含有关不同用户的信息。每个文件都有3或4列,第一行是标题和下面的相应信息。如:按标题解析CSV文件
Username FirstName LastName Occupation
JSmith12 John Smith Staff
一些列的顺序错误或CSV的一半丢失的文件,所以我不能简单地做row.split(“”)[0]让所有的所有CSV文件中的用户名。
这里我的问题是:我将如何能够通过标题标题而不是按行读取和读取所有列信息。
考虑使用该DictReader
class:
$ cat test.csv
Username,FirstName,LastName,Occupation
JSmith12,John,Smith,Staff
$ python
>>> import csv
>>>
>>> with open("test.csv") as f:
... reader = csv.DictReader(f)
... for row in reader:
... print(row)
...
{'Username': 'JSmith12', 'LastName': 'Smith', 'FirstName': 'John', 'Occupation': 'Staff'}
每row
将是其中关键是从CSV文件头中提取的字典。
Python标准库中的csv
library包含一个名为DictReader
的类,它可以实现您想要的功能。
谢谢。但是,我怎样才能一次读一列?我尝试打印行['用户名'],它给了我所有的用户名,但也给我一个回溯错误。此外,当我尝试占领时,它不打印任何东西,但另一个错误 – deaddeaddeads