Python 如何将.csv文件的内容解析为dict,同时始终跳过标题?
如果这是一个非常基本的问题,我很抱歉,但是我设计了一个程序,要求用户输入一个.csv文件。我已经设置了我的代码来解析这个.csv文件,删除可能干扰代码其余部分的任何字符,还删除了dict中带有“序列号”键(即.csv中的头)的任何条目。但是,我知道删除头并不是很符合Python,而且,它还假设用户将始终上载一个.csv文件,其头的格式为“序列号”、“序列1”、“序列2”。我应该怎么做,以便无论在.csv文件中如何设置标头,在将标头解析为dict时始终跳过该标头Python 如何将.csv文件的内容解析为dict,同时始终跳过标题?,python,csv,header,Python,Csv,Header,如果这是一个非常基本的问题,我很抱歉,但是我设计了一个程序,要求用户输入一个.csv文件。我已经设置了我的代码来解析这个.csv文件,删除可能干扰代码其余部分的任何字符,还删除了dict中带有“序列号”键(即.csv中的头)的任何条目。但是,我知道删除头并不是很符合Python,而且,它还假设用户将始终上载一个.csv文件,其头的格式为“序列号”、“序列1”、“序列2”。我应该怎么做,以便无论在.csv文件中如何设置标头,在将标头解析为dict时始终跳过该标头 import csv def c
import csv
def check_sequences_csv_file(csv_file):
sequence_dict= {}
while True:
try:
with open(csv_file, "rU") as csvfile:
sequences = csv.reader(csvfile, dialect= 'excel')
for line in sequences:
candidate_number= line[0]
switch= line[1].replace(' ','').replace('\r','').replace('\n','')
trigger= line[2].replace(' ','').replace('\r','').replace('\n','')
sequence_csv_dict[candidate_number]= [switch, trigger]
sequence_csv_dict.pop('Sequence number', None)
except IOError:
print("Please make sure the file is present in the working directory.")
continue
else:
break
return sequence_dict
仅使用内置的
csv
模块,简单的方法是:
with open(csv_file, "rU") as csvfile:
csv_file.readline()
sequences = csv.reader(csvfile, dialect= 'excel')
这在大多数情况下都会起作用,但是如果标题行是多行的,则会出现解析错误。因此,最好的方法是使用csv.reader
对象的第一次迭代:
with open(csv_file, "rU") as csvfile:
sequences = csv.reader(csvfile, dialect= 'excel')
next(sequences)
(您可以保存标题行以便以后使用:title\u row=next(sequences)
然后继续你的
for
循环,阅读其余的行。如果你能发布一个数据样本和结果字典的样子,回答这个问题会更容易。将其解析为dict
是不寻常的。你可能在找dict
的列表吗?