Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
195 views
in Technique[技术] by (71.8m points)

python - Reading column headers using csv.DictReader and without the fieldnames() method

I have the following (toy) data in a csv file named 'my_file.csv':

Person  City          State  Age
John    Los Angeles   CA     34 
Mary    Boston        MA     27 
Phil    London        N/A    30 

I'd like to be able to print a list of the headers. I'm using the following to create a reader object, then printing the fieldnames:

import csv
filepath = my_file.csv"
col_names = [] 

with open(filepath, 'r') as csvfile:
    reader = csv.DictReader(csvfile)
    
    print(reader.fieldnames)

Is it possible to print the field names without using the fieldnames() method? (e.g. iterating over reader and accessing the dictionary keys in some way)

Thanks!

question from:https://stackoverflow.com/questions/65541125/reading-column-headers-using-csv-dictreader-and-without-the-fieldnames-method

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

It seems like a particularly bizarre constraint to be able to use DictReader but not use its fieldnames value. Anyway, just open the csv file as a normal CSV and read the first row - this gives you the field names.

import csv
filepath = my_file.csv"

with open(filepath, 'r') as csvfile:
    reader = csv.reader(csvfile)
    for row in reader:
        headerrow = list(row)
        break
    print(headerrow)

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...