gpt4 book ai didi

结合 `for` 和 `try` block 的 Pythonic 方式

转载 作者:太空狗 更新时间:2023-10-29 20:25:29 24 4
gpt4 key购买 nike

我有解析 JSON 提要的代码。

对于每个数组,我都有如下代码:

for node in parse_me:
# It's important that one iteration failing doesn't cause all iterations to fail.
try:
i = node['id'] # KeyError?
function_that_needs_int (i) # TypeError?
# possibly other stuff

except Exception as e:
LogErrorMessage ('blah blah blah {} in node {}'.fmt(e, node))

我不喜欢这使我的 for 循环双重嵌套,只是因为我需要阻止异常中止循环。有没有办法扁平化这段代码?

最佳答案

然后你应该做这样的事情

def iterate_safe(parse_me, message, action):
for node in parse_me:
try:
action(node)
except Exception as e:
LogErrorMessage(message.fmt(e, node))

然后像这样调用它

def action(node):
do_whatever_must_be_done_with(node)

iterate_safe(parse_me, action, 'blah blah blah {} in node {}')
iterate_safe(parse_me, other_action, 'spam ham {} in node {}')

关于结合 `for` 和 `try` block 的 Pythonic 方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30055726/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com