向列表中添加词典

2024-09-23 06:24:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我是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(',') 
            rowL = splitLine.rstrip('\n') #remove the newline char
            data.append(rowL)
        pprint(data)

    return data

如果第一个标题行有字典(例如标题、名称等),我将如何传递给每个剥离的元素?你知道吗

例如{'Dict1':'data1','Dict2':'data2'}

这可能被认为是重复的,但尝试了不同的方式从类似的职位,但没有一个适合我的情况。你知道吗


Tags: csv项目脚本标题列表data字典parse
2条回答

@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模块:-). 你知道吗

我强烈建议使用提供的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字典。你知道吗

相关问题 更多 >