簡體   English   中英

Python 2.7-將CSV的每一行存儲為單獨的列表/字典

[英]Python 2.7- Storing Each Row Of A CSV As A Separate List/Dictionary

新手程序員在這里。 我試圖解析管道分隔的CSV文件,並將每個項目行(標題后面的每一行)存儲在單獨的列表或詞典中。

import csv
with open('toverdpython.csv', 'rb') as toverd:
    reader = csv.reader(toverd, delimiter='|', quoting=csv.QUOTE_NONE)

    rownum = 0
    i = 1

    for row in reader:
        #Save header row
        if rownum == 0:
            inputHeader = row
        else: 
            inputRow = {}
            inputRow[i] = row
            i + 1
            print(inputRow.items())


        rownum+=1

    toverd.close()

這產生了以下輸出:

[(2, ['"Test 8"', '"Test 8"', '', '"Test 8"', 'IUGIGUGUI', 'A', 'EA', '602132312952', '2',      'Default', '', '', '', '', '', '"Test 8"', '6123142', 'US', '', '', '', '', '2121231234', '', 'A', '00002', '4600018168', '1', 'A', '0', 'USD', '10026178', '"KGIUGUGIGIU"', 'SADH', '', '', ''])]
[(2, ['"Test 9"', '"Test 9"', '', '"Test 9"', 'BIGIUG802', 'A', 'EA', '6123124242', '2', 'Default', '', '', '', '', '', '"Test 9"', '3694498', 'US', '', '', '', '', '51124124'', 'A', '00002', '463325358', '1', 'A', '0', 'USD', '134345436178', '"MNONOINOIN"', 'SADAHRH', '', '', ''])]

數據是正確的 - 但我很難說我是否在循環的每次迭代中覆蓋了我的信息。 我嘗試閱讀列表和詞典,但我覺得好像我完全迷失了。

我的目標是能夠將文檔的每一行存儲在一個單獨的數組中,例如inputRow1 [],InputRow2 []等,並且每一行按位置的參考值,如inputRow2 [3]應返回“Test” 9" 。 任何指導將不勝感激,謝謝。

我想這就是你想要的......

import csv
with open('toverdpython.csv', 'rb') as toverd:
    reader = csv.reader(toverd, delimiter='|', quoting=csv.QUOTE_NONE)

    # get the header
    inputHeader = next(reader)    

    # get the rest
    inputRows = [row for row in reader]

# just to vreify...
print header
for row in inputRows:
    print ', '.join(row)

您正在使用inputRaw字典作為列表,所以您可能最好只使用列表,例如inputRaw = []

你需要在for循環之前輸入inputRow = [] ,否則你會在每次迭代中覆蓋它。

在循環之前初始化i = 0因為列表是基於零的。

您可能需要查看https://docs.python.org/2/library/csv.html#csv.DictReader中的csv.DictReader。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM