【发布时间】:2023-02-24 08:41:23
【问题描述】:
我将 csv 文件作为字典打开,并尝试将其逐行附加到现有字典中。但它似乎没有附加。相反,现有字典只在循环中保存当前行。那么,我做错了什么?
buffer = {}
with open("small.csv", "r") as input:
reader = csv.DictReader(input)
for row in reader:
buffer |= row
print(buffer)
缓冲区字典应该将所有行存储在阅读器中,但它只保存当前行。我尝试使用 buffer.update(row) 但发现了相同的结果。
【问题讨论】:
-
buffer = {}那是集合,不是字典... -
另外,你为什么使用
|=? -
@JohnGordon
{}是空字典,不是集合 -
您从
DictReader获得的每个字典都将具有相同的键集 - 因此您只是在第一次迭代之后的每次迭代中覆盖以前的值。 -
你是什么意思“存储所有行”?是否应该将一列映射到该列的值列表?
标签: python