簡體   English   中英

csv.DictReader 函數只讀取 csv 文件的第一行

[英]csv.DictReader function only reading first line of csv file

似乎有效,問題是,它只返回 csv 文件的第一行,我做錯了什么?

我正在嘗試將 csv 文件導入到我的 python 代碼中,但它只返回 csv 文件的第一行

import csv
with open('aapl_price-history-01-09-2019.csv') as csvfile:
    fieldnames = ['Time', 'Open', 'High', 'Low', 'Last', 'Change', 'Volume']
    stockPxReader = csv.DictReader(csvfile)
    stockPxData = {}
    for row in stockPxReader:
        stockPxData = row
    print(stockPxData)   

在這里,請將 stockPxData = {} 更改為 stockPxData = [],然后將行附加到 stockPxData 列表。

import csv
with open('aapl_price-history-01-09-2019.csv') as csvfile:
    fieldnames = ['Time', 'Open', 'High', 'Low', 'Last', 'Change',
    'Volume']
    stockPxReader = csv.DictReader(csvfile)
    stockPxData = []
    for row in stockPxReader:
        stockPxData.append(row)
print(stockPxData)

您正在嘗試向字典中添加一個項目。 字典有 'key':'value' 對。 您正在做的只是將“值”添加到字典中。

import csv
with open('aapl_price-history-01-09-2019.csv') as csvfile:
    fieldnames = ['Time', 'Open', 'High', 'Low', 'Last', 'Change', 'Volume']
    stockPxReader = csv.DictReader(csvfile)
    stockPxData = {}
    idx = 0                           # this is to initialize the index counter
    for row in stockPxReader:
        stockPxData[str(idx)] = row   # syntax to assign key value to dict
        idx = idx + 1                 # update index value in the for loop
        print(stockPxData)            # print in the open file handler statement

您只是執行一項任務: stockPxData = row 這導致只有一個 dict 被存儲在這個變量中。

為了存儲所有行,請嘗試將它們附加到列表中,例如

stockPxData = []
for row in stockPxReader:
    stockPxData.append(row)

或者為每個 dict 元素定義一個鍵以存儲在 dict 中(這里我使用數組中的索引作為鍵):

for idx, row in enumerate(stockPxReader):
    stockPxData[str(idx)] = row

暫無
暫無

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

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