python-3.x - 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
解决方案
每次函数调用后都需要返回,返回不会自动冒泡。
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
推荐阅读
- ios - 快速绘制 LineGraph 并出现意外错误
- amazon-web-services - AWS CloudFront err_too_many_redirects
- python - 当键很奇怪时将列表映射到字典
- c# - 如何在 asp.net mvc 中使用 3 个数组获取 json 数据
- r - 如何按正确的降序制作哑铃图?
- python - 如何为 SymPy 中的符号分配属性并将它们放在同一个域中?
- bash - Linux在错误的地方添加字符串(使用echo、sed、cat)
- flutter - Dart:替换字符串中的前 n 个数字
- python - 当输出不等概率时如何提高准确性?
- java - Api 返回一个对象的对象而不是数组