繁体   English   中英

将Dictionary添加到列表python

[英]Add Dictionary to a list 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'}

这可能被认为是重复的,但是从类似的帖子中尝试了各种方法,但是在我的案例中没有一种工作正常。

我强烈建议使用提供的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模块的所有细微之处:-)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM