首页 > 解决方案 > python函数返回不起作用

问题描述

我有一个递归遍历函数来遍历 JSON 对象并返回我想要的信息。问题是它没有返回任何东西。我知道递归工作正常,因为我修改了功能以在每个步骤中打印出输入,并且它正在打印出预期的结果 - 包括最后一步。

def wikipedia_JSON_traversal(wiki):
    if type(wiki)==dict:
        if 'definitions' in wiki.keys():
             wikipedia_JSON_traversal(wiki['definitions'])
        elif 'text' in wiki.keys():                       
             wikipedia_JSON_traversal(wiki['text'])
        else:
             pass
     elif type(wiki)==list:
        wikipedia_JSON_traversal(wiki[0])
    else:
        return wiki

标签: python-3.xrecursion

解决方案


每次函数调用后都需要返回,返回不会自动冒泡。

def wikipedia_JSON_traversal(wiki):
    if type(wiki)==dict:
        if 'definitions' in wiki.keys():
             return wikipedia_JSON_traversal(wiki['definitions'])
        elif 'text' in wiki.keys():                       
             return wikipedia_JSON_traversal(wiki['text'])
        else:
             pass
    elif type(wiki)==list:
        return wikipedia_JSON_traversal(wiki[0])
    else:
        return wiki

推荐阅读