KeyError可能由simplejson.loads
引发,违规密钥可能真的是None
。没有足够的背景可以说更多。如果按照要求给出回溯,它将有很大帮助。
查看回溯应该告诉您引发异常的模块。您可能还需要考虑使用ipdb来回手动来回调试这样的未来问题。此外,您应该继承Python的Exception类,这样您就可以通过提升和异常来控制自己的代码。
利用Python的getattr和setattr函数也有很多帮助:
在test_data上使用getattr会告诉您何时在返回None时引发自定义异常。