2016-04-29 35 views
1

我有幾個CSV文件,其中包含有關不同用戶的信息。每個文件都有3或4列,第一行是標題和下面的相應信息。如:按標題解析CSV文件

Username FirstName LastName Occupation 
JSmith12 John  Smith  Staff 

一些列的順序錯誤或CSV的一半丟失的文件,所以我不能簡單地做row.split(「」)[0]讓所有的所有CSV文件中的用戶名。

這裏我的問題是:我將如何能夠通過標題標題而不是按行讀取和讀取所有列信息。

回答

1

考慮使用該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文件頭中提取的字典。

+0

謝謝。但是,我怎樣才能一次讀一列?我嘗試打印行['用戶名'],它給了我所有的用戶名,但也給我一個回溯錯誤。此外,當我嘗試佔領時,它不打印任何東西,但另一個錯誤 – deaddeaddeads

0

Python標準庫中的csvlibrary包含一個名爲DictReader的類,它可以實現您想要的功能。