【发布时间】:2017-12-06 09:09:03
【问题描述】:
这里 abc 的值是一个整数,total 是一个包含另一个字典的字典。但是当我运行这一行时,
total[div]['total_transport_allowance'] = abc
显示此错误:"KeyError: None"
请帮忙
我想从这个语句中得到 abc 的值到键 'total_transport_allowance'
def print_excel_report(self,cr,uid,ids,data,context=None):
result = self._get_lines(cr,uid,ids,data)
filename= 'PayrollRegister.xls'
workbook= xlwt.Workbook(encoding="UTF-8")
sheet= workbook.add_sheet('Payroll Register',cell_overwrite_ok=True)
style = xlwt.easyxf('font:height 400, bold True, name Arial; align: horiz center, vert center;borders: top medium,right medium,bottom medium,left medium')
a = range(1,10)
row = 1
col =0
header = ['Division','Basic','Transport Allowance']
style2 = xlwt.easyxf('font: bold 1')
total = {}
for index,data in enumerate(result):
div = data.get('Division',False)
abc = data.get('transport_allowance',False) or 0
if div:
if div in total:
total[div]['total_basic'] = total[div]['total_basic'] + data.get('basic',0)
total[div]['total_transport_allowance'] = total[div]['total_transport_allowance'] + abc
else:
total[div] = {}
total[div]['total_basic'] = data.get('basic',0)
total[div]['total_transport_allowance'] = abc
else:
if 'Undefined' in total:
total['Undefined']['total_basic'] = total['Undefined']['total_basic'] + data.get('basic',0)
total[div]['total_transport_allowance'] = total[div]['total_transport_allowance'] + abc
else:
total['Undefined'] = {}
total['Undefined']['total_basic'] = data.get('basic',0)
total[div]['total_transport_allowance'] = abc
.......
.....
【问题讨论】:
-
请向我们展示更多关于该问题的代码。尤其是
div和abc是什么。理想情况下,一个可自行运行且仍能显示您的问题的最小示例。 -
abc 的值从 0 开始。div 是一个内部字典。
-
通过阅读您的错误,
div为无。发布minimal reproducible example -
真的....尝试重现您的错误的最小示例
-
实际阅读:How to create a Minimal, Complete, and Verifiable example。你需要付出一些努力来解决这个问题。