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文件中文本的示例:
Symbol,DateAdj,关闭
AAPL,2012年2月6日,58.064457
AAPL,1/12 / 2018,173.059113
因此,我要做的是从字典中获取所有值,并打印出公司拥有的最高存货,以及存货的日期。我的程序当前有一个line.get函数,该函数尝试获取所有APL数据行并将其返回,但是line.get函数不起作用,也没有返回苹果库存,仅不返回苹果库存。
我只需要.get函数的帮助,使其正常工作并有效地退还库存。
我只用第一个函数运行了程序,这是字典中返回的一些值:
[OrderedDict([('SymbolDateAdj Close', '')]), OrderedDict([('SymbolDateAdj Close', 'AAPL2/6/201258.064457')]), OrderedDict([('SymbolDateAdj Close', '')]), OrderedDict([('SymbolDateAdj Close', 'AAPL1/12/2018173.059113')])
答案 0 :(得分:0)
此行
retVal.append(line.get("AAPL"))
将line.get("AAPL")
的结果添加到列表中。如果行包含 key “ AAPL”,则line.get("AAPL")
返回line
,否则返回None
。在您的csv行中,“ AAPL”是一个值,键是“ Symbol”,因此代码应为
for line in dict_list:
if line.get("Symbol") == "AAPL":
retval.append(line)
此代码获取“ Symbol”键的值,如果该值为“ AAPL”,则将该行添加到列表中。