python - 如何格式化 CSV 中的字典列表? - Python

标签 python python-3.x csv dictionary stockquotes

我有一个股票价格数据的 CSV 文件,我想将其放入包含日期和收盘价的字典中。

CSV 文件如下所示: 日期收盘量开高低 2017/09/22 151.89 46575410 152.02 152.27 150.56 2017/09/21 153.39 37350060 155.8 155.8 152.75 2017/09/20 156.07 52126240 157.9 158.26 153.83 2017/09/19 158.73 20565620 159.51 159.77 158.44

我希望结束字典这样排列:

perfect_dict = [
{'Date': '2017/09/22', 'Close': '151.89'},
{'Date': '2017/09/21', 'Close': '153.39'},
...]

我当前的代码获取 CSV 数据并为日期和收盘价创建两个单独的列表。我试过使用 dict(zip(dates, close_prices) 但它没有按照我上面提到的方式格式化新字典。这是我的代码:

import csv
from collections import defaultdict

# --->
columns = defaultdict(list)

with open('mydata.csv') as f:
    reader = csv.DictReader(f) 
    for row in reader: value2,...}
        for (k,v) in row.items(): 
            columns[k].append(v) 

dates = columns['date']
close_prices = columns['close']

# This is what doesn't format it right
#stock_dict = dict(zip(dates, close_prices))
#pprint.pprint(stock_dict)

如果有人能给我指出正确的方向,那就太好了,谢谢!

最佳答案

你可以使用字典理解:

import csv

data = list(csv.reader(open('filename.csv')))
final_data = [{a:b for a, b in zip(["Date", "Close"], i[:2])} for i in data[1:]]

请注意,您不能将字典存储在一个集合中,因为字典本身是不可散列的。

关于python - 如何格式化 CSV 中的字典列表? - Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46416570/

相关文章:

python - pyapns - hexlified_token_str

python - 需要提升权限的 Ubuntu 中的 MKL 多线程

ruby - 如何解析 CSV 文件,更新字段,然后保存

regex - 替换匹配前的第一个字符

python - 如何在 django-rest-framework 中序列化具有自定义关系的 2 个模型?

python - 在 Tensorflow 中使用初始模型进行迁移学习(python)

linux - pyscreenshot循环滞后显示

python - 属性错误 : 'function' object has no attribute 'func_name' and python 3

python - psutil 中的 cpu-percent 为每个进程返回 0.0

python - 在 Python 中读取文件时有没有办法跳到特定的行号?