python - Python CSV 字典读取,每次都输入同一行(最后一行)
问题描述
所以我现在正在学习 Python Essentials 课程,并且正在尝试读取 CSV 文件。使用 csv 模块和 csv.DictReader 即时循环通过 csv,为每一行制作一个字典,并将该行添加到返回给 main.py 的列表中。出于某种原因,我无法弄清楚,每次都添加最后一行而不是每次都添加新行。
import csv
def read_file(f_name):
f = []
my_dict = {}
with open(f_name) as f_data:
for line in csv.DictReader(f_data):
print(dict(line))
my_dict.update(dict(line))
f.append(my_dict)
return f
def print_file(f):
for entry in f:
print(entry)
print('file name > weather.csv')
f_name = 'python/topicchallenge6b/weather.csv'
f = read_file(f_name)
print()
print_file(f)
来自 CSV:
"Temp","Press","Humidity"
1.1,55.5,22.2
3.3,4.4,6.6
8.8,99.9,7.7
所有三个条目都保存为 8.8,99.9,7.7,但作为不同的集合正确打印。
file name > weather.csv
{'Temp': '1.1', 'Press': '55.5', 'Humidity': '22.2'}
{'Temp': '3.3', 'Press': '4.4', 'Humidity': '6.6'}
{'Temp': '8.8', 'Press': '99.9', 'Humidity': '7.7'}
{'Temp': '8.8', 'Press': '99.9', 'Humidity': '7.7'}
{'Temp': '8.8', 'Press': '99.9', 'Humidity': '7.7'}
{'Temp': '8.8', 'Press': '99.9', 'Humidity': '7.7'}
为什么python会有这样的行为,有没有更好的方法?
解决方案
推荐阅读
- swift - 从 Swift 3.x 转换为 5
- python - 什么是 Python 中的原子操作?
- excel - Excel VBA 集合/coll.Count - 动态
- java - 当索引未知时如何更改数组中的一个位置?
- python - 如何在 matplotlib 中定义我的轴之一上的范围?
- nlp - 使用自然语言处理将命令分解为组件
- c++ - 使用 std::vector::push_back 插入未知数量的元素时,是否应在每次推送时检查 std::vector::max_size ?
- python - 如何将 Google 表格连接到 MongoDB
- java - 打印 JSON 字符串未正确显示转义字符
- laravel-spark - 你如何允许现有用户加入 Laravel Spark 中的团队?