如何使用.get函数正确获取csv文件字典以返回某些值

2024-10-02 22:25:09 发布

您现在位置:Python中文网/ 问答频道 /正文

import csv

def csv_dict_list(csv_file):
    reader = csv.DictReader(open(csv_file, "r"))
    dict_list = []
    for line in reader:
        dict_list.append(line)
    return dict_list # [line for line in reader]

def applestock(dict_list):
    retVal = []
    for line in dict_list:
        retVal.append(line.get("AAPL"))    
    return retVal # [line.get("AAPL") for line in dict_list]

stocks = csv_dict_list("newcsv.csv")
apple = applestock(stocks)
print(apple)

所以,我有一个程序,它接受一个csv文件,并将其转换成一个字典,然后附加行。csv文件包含三家不同公司的股票。以下是csv文件中的文本示例:

符号,日期调整,关闭

AAPL,2012年2月6日,58.064457

AAPL,1/12/2018173.059113

所以我需要做的是从字典里取出所有的值,打印出公司的最高股票,以及股票的日期。我的程序目前有一个行。获取函数,该函数尝试获取AAPL数据的所有行并返回它,但行。获取功能不起作用,也不返回苹果股票,只是不返回任何股票。你知道吗

我只需要帮助与.get函数,让它正常工作,并得到股票从它有效地返回。你知道吗

我用第一个函数运行了程序,这是在字典中返回的一些值:

[OrderedDict([('SymbolDateAdj Close', '')]), OrderedDict([('SymbolDateAdj Close', 'AAPL2/6/201258.064457')]), OrderedDict([('SymbolDateAdj Close', '')]), OrderedDict([('SymbolDateAdj Close', 'AAPL1/12/2018173.059113')])

Tags: csv函数inforclosegetlinedict
1条回答
网友
1楼 · 发布于 2024-10-02 22:25:09

这条线

retVal.append(line.get("AAPL")) 

line.get("AAPL")的结果添加到列表中。line.get("AAPL")如果行包含“AAPL”,则返回line,否则返回None。在csv行中,“AAPL”是一个,键是“Symbol”,因此代码应该是

for line in dict_list:
    if line.get("Symbol") == "AAPL":
        retval.append(line)

此代码获取“Symbol”键的值,如果值为“AAPL”,则将该行添加到列表中。你知道吗

相关问题 更多 >