上面的代码报错:'dict'对象没有属性'reader'
时间: 2024-09-09 08:08:21 浏览: 37
Python中运行有关jieba模块的时候报错:Building prefix dict from the default dictionary …
对不起,看起来我在描述过程中犯了错误。实际上,在Python中,`csv.reader` 是用来读取CSV文件的,而不是直接操作字典。你需要先打开文件,然后创建一个 `csv.reader` 对象来迭代文件的行。这里是修改后的代码:
```python
import csv
def load_bank_dict(filename):
bank_dict = {} # 创建一个空的银行字典
with open(filename, newline='') as file: # 增加 'newline=''', 防止在Windows上额外插入换行符
reader = csv.reader(file, delimiter=':', skipinitialspace=True) # 依然使用冒号分隔符,去除行首空白
for row in reader:
if not row or all(cell.strip() == '' for cell in row): # 检查空行或全为空格的行
continue
key, value = row[0].strip(), row[1].strip() # 提取键和值,去除两侧空白
try:
# 尝试将值转换为整数,如果无效则跳过
amount = int(value)
# 如果键已存在,增加值;若不存在,直接添加键值对
bank_dict[key] = bank_dict.get(key, 0) + amount
except ValueError:
# 如果值不是一个有效的数字,跳过这一行
print(f"Invalid value '{value}' for user {key}, ignored.")
return bank_dict
```
现在代码应该可以正常运行,它会按照要求从CSV文件中读取数据并构建银行字典。如果你还有其他问题,请告诉我。
阅读全文