簡體   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