文章目录

  • 前言
  • python读取Excel经典报错 —— KeyError: 解决方案
    • 出现问题:
    • 解决方法:
          • 梦中的婚礼,sincerely,end.


前言

  利用python读取Excel表格,出现“KeyError:”错误,前前后后看了近3小时,发现竟是一个很纯的错误,已解决,如有错误,请纠正,万分感谢


python读取Excel经典报错 —— KeyError: 解决方案

出现问题:

Traceback (most recent call last):
  File "C:/XXXXXXXXXXXXXXXX.py", line 173, in <module>
    code_1.append(row_data['star'])
KeyError: 'star'

  此种报错,利用了很多参考方法得不到有效的解决。

解决方法:

  这是我需要读取的第3个字段,只从它开始报错,证明前2个字段都没有问题。
 (1)先开始我从头开始检查,这个Excel是我将json文件进行清洗之后存进去的,发现转换后的Excel表中的内容能够正常显示;我又看了看最后的遍历部分,是不是我缺失了字段值没有写进去,从而导致读错误?这二者都没有解决问题。
 (2)后来,我发现了一种利用 .get 进行自动填充的方式,即如果此字段中有不存在的值,系统自动用None帮你填充,我猜想是部分值不存在而导致的错误,于是修改了源代码:

即 将code_1.append(row_data['star'])修改为了code_1.append(row_data.get('star'))
如下:
  有些小伙伴可能利用这个可以解决问题,那么恭喜你们啊!

  巴特!我!还!不!能!
  虽然说不报错了,但是我的数据,除了前两列,其余显示全部为None,这令我很疑惑,原原本本Excel里面的数据去哪里了??

  经过我反复的看,反!复!的!看,我发现了一个极蠢的bug…一共有A、B两个文件,格式相仿,当初我是想要读取B文件,就把之前写好的代码粘过来了,改了字段名和列数之后,就点击运行了。可怕的是,我读取的文件应该写df = pd.read_excel('B.xlsx')的,写成了df = pd.read_excel('A.xlsx')。因为前两个字段在A中也有,所以前两字段内容就显示了!
  代码的搬运工们需谨慎!快看看你有没有读错表吧~太致命了,唔…


梦中的婚礼,sincerely,end.

更多推荐

踩坑记录:python读取Excel(字典形式)经典报错 —— KeyError: