我正在编写代码,从Python中的CSV文件生成一个全局字典。代码没有达到我的预期
用户.csv
name,money_in_pocket
siem,10
bart,10
ivar,10
测试.py
import csv
global users
users = {}
with open('users.csv', mode='r') as readuserfile:
readusers = csv.reader(readuserfile, delimiter=',')
next(readusers)
for rows in readusers:
users[rows[0]] = float(rows[1])
运行完这段代码后,我希望Shell中会发生以下情况:
>>>print(dict)
{'siem': 10, 'bart': 10, 'ivar': 10}
相反,运行test.py会引发下一个错误:
Traceback (most recent call last):
----File "C:\Users\siemd\Desktop\test.py", line 8, in
--------users[rows[0]] = float(rows[1])
IndexError: list index out of range
如果我理解正确,那么rows[0]
和rows[1]
就不能返回值,因为它们超出了“list”的范围(这是一个读取的csv文件)。
但他们应该。。。是吗
您应该检查
rows
的长度和类型。试过你的例子:很好用。但如果结尾有一条新线,它就失败了:
添加简单检查有助于:
相关问题 更多 >
编程相关推荐