目录
新建两个函数A和B,函数 A处理字典数据,被调用后,判断传递的参数,如果参数为字典,则调用自身;
函数 B处理列表,被调用后,判断传递的参数,如果参数为列表或者元组,则调用自身;
背景
在做接口自动化的过程中,接口返回的数据是 列表字典循环嵌套 格式的,所以怎样通过一个key值,获取到被包裹了多层的目标数据成为了摆在我面前的一个问题。
一开始没想自己写,但是搜索后发现虽然很多人遇到类似的问题,但是相应的解决方案都不能达到我想要的结果,所以自己尝试写了一个。
思路
最初的做法是写一个函数,每次对传入的数据进行类型判断,然后根据数据类型做对应的处理,后来发现如果这样,实际有多少层数据就要做多少次判断。
那么有没有一劳永逸的方法呢?答案当然是有!
调试过程中发现,函数的调用特别符合递归的规律,但是和一般递归的略有不同,需要两个函数相互调用递归。实测可以完美解决这个问题!
具体思路如下: