我遍历长度为4的列表列表,但在一次迭代后停止。
print((data))
formatted_exec_dictionary_list = []
for entry in data:
print(entry)
try:
formatted_exec = {
'minute': self.validate_type_and_range(entry[0], 0, 59),
'hour': self.validate_type_and_range(entry[1], 0, 23),
'path': entry[2]
}
formatted_exec_dictionary_list.append(formatted_exec)
except IndexError as exception:
print(exception)
if self.logger:
self.logger.error("""
Could not successfully parse entry...
Exception: %s""", exception)
在代码段的最顶层打印中,这是输出:
[[u'30', u'1', u'/bin/run_me_daily'], [u'45', u'*', u'/bin/run_me_hourly'],
[u'*', u'*', u'/bin/run_me_every_minute'],
[u'*', u'19', u'/bin/run_me_sixty_times']]
但for循环包装的打印只返回第一个条目,然后停止。
因为打印没有触发而且程序的其余部分运行正常,所以似乎没有异常。它似乎只是忽略了列表中所有其他条目......
这是常见的吗?任何线索为什么会发生这种情况?
为了澄清,NOTHING特别发生在似乎抛出异常的循环中。函数validate_type_and_range
打印预期的数据,但仅用于一次迭代。
答案 0 :(得分:1)
当我更换您的' validate_type_and_range(...)'使用一些字符串,我得到以下输出:
[[u'30', u'1', u'/bin/run_me_daily'], [u'45', u'*', u'/bin/run_me_hourly'], [u'*', u'*', u'/bin/run_me_every_minute'],
[u'*', u'19', u'/bin/run_me_sixty_times']]
[u'30', u'1', u'/bin/run_me_daily']
[u'45', u'*', u'/bin/run_me_hourly']
[u'*', u'*', u'/bin/run_me_every_minute']
[u'*', u'19', u'/bin/run_me_sixty_times']
我认为您的“validate_type_and_range'
会发生一些事情print((data))
formatted_exec_dictionary_list = []
for entry in data:
print(entry)
try:
formatted_exec = {
'minute': "foo",
'hour': "bar",
'path': entry[2]
}
formatted_exec_dictionary_list.append(formatted_exec)
except IndexError as exception:
print(exception)
if self.logger:
self.logger.error("""
Could not successfully parse entry...
Exception: %s""", exception)