【问题标题】:I'm getting keyerror and can not import data from csv file我收到密钥错误,无法从 csv 文件导入数据
【发布时间】:2018-03-09 18:07:01
【问题描述】:
def load_data(label_dict):
    x = []
    y = []
    x_keys = ['FEAT_1','FEAT_2','FEAT_3','FEAT_4','FEAT_5','FEAT_6']
    y_keys = ['LABEL'];
    for item in label_dict:
        x.append([float(item[k]) for k in x_keys])
        y.append([float(item[k]) for k in y_keys])

    return (x,y)

错误是:

File "NID_1.py", line 54, in load_data
    x.append([float(item[k]) for k in x_keys])
KeyError: 'FEAT_1'

【问题讨论】:

  • 什么是 label_dict?
  • 您是否使用 DictReader 读取 csv?
  • for item in label_dict 迭代看起来像字典的东西。这意味着它会遍历该字典的键。由于字典是可变的,不能是字典的键,因此 item['FEAT_1'] 不能工作。
  • 它的参数我用过

标签: python


【解决方案1】:

label_dict 似乎是您迭代的字典列表。

错误是说在扫描中遇到了没有x_keys 中的键之一的字典。

这里的答案实际上取决于您作为label_dict 传递的内容,但是如果您想确保不生成错误,您可以询问字典item 本身它的键是什么,而不用硬编码它们x_keys 列表

Python2:

x.append([float(item[k]) for k in item.keys()])

Python 3:

x.append([float(item[k]) for k in list(item.keys())])

【讨论】:

    猜你喜欢
    • 2013-02-12
    • 2021-05-23
    • 2017-03-23
    • 2019-12-19
    • 2013-02-23
    • 2011-02-18
    • 2021-12-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多