2013-12-18 94 views
1

我有一個CSV與下面提到格式文件:讀取一個CSV文件並投入字典

Test header 
a,4955402-RX,b,m130301110 
c,2839134,d,2013 03 01 12:10:53 
e,,f,Pallet9 
g,3.75-2,h, 
i,1,j,T71 
k,PASS 
l,22222222222222222222222 

Test Data 
Some values 

我想讀頭部分,並把鍵值對在頭上可用的字典。請分享你的想法。提前致謝。

+1

的列形成鍵/值對? – inspectorG4dget

+0

鍵和值以格式:key1,value1,key2,value2等格式存在於文件中。示例:key1:a,value1:4955402-RX,key2:b,value2:m130301110 – Dharani

+0

所以你想要一個dicts列表?這看起來效率低下 – inspectorG4dget

回答

0

標準CSV格式沒有一個「頭」行表示。因此,您的「CSV」數據將需要自定義閱讀器,否則您將不得不使用標準的CSV閱讀器並自行處理行數據以處理標題。

這個python csv reader對你很有幫助。

建立慣例,一個標題行的格式HEADER, <header-name>的,

import csv 
header = 'None' 
datastore = {} 
with open('some.csv', 'rb') as f: 
    reader = csv.reader(f) 
    for row in reader: 
     if row[0] == 'HEADER': 
      header = row[1] 
     elif: 
      datastore[header] = datastore[header] or [] 
      datastore[header] += row 
1

其他人已經談過csv,所以我會去真的低技術含量這裏

answer = {} 
with open('myFile.csv') as infile: 
    infile.readline() # ignore the header line 
    for line in infile: 
     k1,v1,k2,v2 = line.strip().split(',') 
     answer[k1] = v1 
     answer[k2] = v2