我有很多票务字典,看起来像这样:
{'origin': u'HW',
'department': u'Intern',
'ticket-closed': False,
'prio-events': [(datetime.datetime(2015, 6, 8, 17, 30, 17, 490990, tzinfo=<LocalTimezone "UTC+02:00" 2:00:00>), u'Important')],
'status-events': [(datetime.datetime(2015, 6, 8, 17, 30, 17, 490990, tzinfo=<LocalTimezone "UTC+02:00" 2:00:00>), u'new'), (datetime.datetime(2015, 7, 22, 16, 41, 52, 408334, tzinfo=<LocalTimezone "UTC+02:00" 2:00:00>), u'developing')]}
{'origin': u'HW',
'department': u'Intern',
'ticket-closed': False,
'prio-events': [(datetime.datetime(2015, 6, 8, 17, 39, 34, 351329, tzinfo=<LocalTimezone "UTC+02:00" 2:00:00>), u'Important')],
'status-events': [(datetime.datetime(2015, 6, 8, 17, 39, 34, 351329, tzinfo=<LocalTimezone "UTC+02:00" 2:00:00>), u'new')}
{'origin': u'HW',
'department': u'Intern',
'ticket-closed': False,
'prio-events': [(datetime.datetime(2015, 6, 8, 17, 49, 58, 454331, tzinfo=<LocalTimezone "UTC+02:00" 2:00:00>), u'Important')],
'status-events': [(datetime.datetime(2015, 6, 8, 17, 49, 58, 454331, tzinfo=<LocalTimezone "UTC+02:00" 2:00:00>), u'new'), (datetime.datetime(2015, 7, 22, 16, 42, 49, 339349, tzinfo=<LocalTimezone "UTC+02:00" 2:00:00>), u'closed')]}
我想制作一个饼图,matplotlib
以显示多少张票是“新的”,“开发中的”或“关闭的”,因此我需要检查"status-events"
我尝试过的最后一个值,但它不起作用,我的计数器不增加。
newCounter = 0
closedCounter = 0
developingCounter = 0
for (i,j) in OpenedDict.iteritems():
if j['status-events'][-1]== 'new':
newCounter += 1
if j['status-events'][-1]== 'closed':
closedCounter += 1
if j['status-events'][-1]== 'developing':
developingCounter += 1
似乎您在读取错误的元素以进行计数,status-events是一个元组列表。
要跟踪为什么未正确读取它,请尝试打印j['status-events'][-1]
到终端上以查看要比较的值。现在,这将返回一个元组。
如果您只关心status-events
列表中的最后一项,则可以将脚本修改为:
for (i,j) in OpenedDict.iteritems():
if j['status-events'][-1][-1] == 'new':
newCounter += 1
if j['status-events'][-1][-1] == 'closed':
closedCounter += 1
if j['status-events'][-1][-1] == 'developing':
developingCounter += 1
否则,如果您想要列表中每个项目的值,则status-events
必须为其创建另一个循环:
for (i,j) in OpenedDict.iteritems():
for k in j['status-events']:
if k[-1] == 'new':
newCounter += 1
if k[-1] == 'closed':
closedCounter += 1
if k[-1] == 'developing':
developingCounter += 1
除此之外,第二个示例似乎缺少括号。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句