【发布时间】:2017-10-18 20:56:23
【问题描述】:
我正在编写代码以从 Python 中的 CSV 文件创建一个全局字典。代码没有达到我的预期。
users.csv
name,money_in_pocket
siem,10
bart,10
ivar,10
test.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 会引发下一个错误:
回溯(最近一次通话最后一次):
----文件“C:\Users\siemd\Desktop\test.py”,第 8 行,在
--------用户[行[0]] =浮动(行[1])
IndexError: 列表索引超出范围
如果我理解正确,那么 rows[0] 和 rows[1] 无法返回值,因为它们超出了“列表”(这是一个读取的 csv 文件)的范围。
但他们应该……对吧?
【问题讨论】:
-
您的 CSV 文件末尾可能有一个空行,或者某处某处只有一列。
-
users.csv 文件正是 test.py 中使用的文件,@DanielRoseman。所以每行有 2 列,没有最后一个空行
标签: python csv dictionary