将字典添加到python列表中
我是python新手,我正在尝试创建一个csv解析脚本。 我将csv中的行传递给列表,但目前困扰我的是,我需要在每个项目中添加第一个标题行作为字典将字典添加到python列表中,python,csv,dictionary,Python,Csv,Dictionary,我是python新手,我正在尝试创建一个csv解析脚本。 我将csv中的行传递给列表,但目前困扰我的是,我需要在每个项目中添加第一个标题行作为字典 def parse_csv(datafile): data = [] with open(datafile, "r") as f: next(f) #skip headerline for line in f: splitLine = line.strip(',')
def parse_csv(datafile):
data = []
with open(datafile, "r") as f:
next(f) #skip headerline
for line in f:
splitLine = line.strip(',')
rowL = splitLine.rstrip('\n') #remove the newline char
data.append(rowL)
pprint(data)
return data
如果第一个标题行有字典,例如标题、名称等,我将如何传递到每个剥离元素
e、 g{'Dict1':'data1','Dict2':'data2'}
这可能被认为是重复的,但从类似的帖子中尝试了各种方法,但没有一种在我的案例中正常工作。我强烈建议使用提供的csv库。它将为您节省大量的时间和精力。以下是您想要做的:
import csv
data = []
with open(datafile, 'r') as csvfile:
reader = csv.DictReader(csvfile)
for row in reader:
data.append(row)
print(row['Title'], row['Name'])
在本例中,每一行实际上都是一个python字典。@GeorgiDimitrov当然正确,正确的方法是使用标准库中的csv模块,但是,如果您这样做只是为了自我指导,那么…:
def parse_csv(datafile):
data = []
with open(datafile, "r") as f:
headers = next(f).split(',')
for line in f:
splitLine = line.split(',')
dd = dict(zip(headers,splitLine))
data.append(dd
pprint(data)
return data
这将无法正确处理引号/转义逗号和c-所有微妙之处,最好留给csv模块:-.您是说line.split','?你能说得更准确些吗?我不明白实际的问题。