美妆网站建设方案/天津搜索引擎推广
我是python(2.x)上的新编程,甚至寻找几个小时我无法解决问题。 的Python返回KeyError异常Python在csv.DictReader()中返回KeyError()
的(对象).csv文件是:
id,name,type
1,low,player
的Python代码是:
import csv
class Item(object):
def setup(self, config):
self.config = config
self.label = config['label']
self.name = config['name']
self.type = config['type']
def create_item(config):
new_item = Item()
new_item.setup(config)
return(new_item)
def populate():
all_items = {}
f = open('object.csv', 'rb')
reader = csv.DictReader(f, delimiter = ',')
for row in reader:
new_item = (create_item(row))
all_items[new_item.label] = new_item
return(all_items)
的Python返回:
Self.type = config['type']
KeyError: 'type'
奇怪的在csv和Python代码中,列标题不包含任何键入错误。 当我更改“id”列的名称时,错误返回到新的标题(以前的“id”)。 (同样的情况发生时,我添加另一个标题,并尝试阅读它)
任何帮助,欢迎和抱歉造成的不便。 感谢
+0
你周围有逗号额外的空间,所以真正的列名''身份证 '','' 名称 ''&'' type''。尝试在调用'create_item'之前打印一行以在实践中看到它。 –
+0
多余的空格是我输入帖子时的错误。对于那个很抱歉。打印行时的返回值是:'{'id':'1','name':'low','type':'player'}'但在此之后,错误仍然存在 –
+0
[抓住例外]( https://docs.python.org/3/tutorial/errors.html#handling-exceptions)以及除了套件打印“'''''' - 键是你所期望的? –