为什么程序会返回None呢

想写一个json解析的方法,不知道为什么会返回None
这是JSON串:
datas = {"store":{"book":"aaa","bicycle":{"color":"red","price":19.95}},"expensive":10}
这是程序

def sea_value(json_object, key: str):
    for k in json_object:
        if k == key:
            return json_object[k]
        if isinstance(json_object[k], dict):
            sea_value(json_object[k], key)
        if isinstance(json_object[k], list):
            for item in json_object[k]:
                if isinstance(item, dict):
                    sea_value(item, key)

print(sea_value(datas, 'color'))

这是为啥啊?

解决啦,你这代码写的没太大问题,但是忽略了一个小点,print打印的是当前,也就是第一次调用sea_value返回的内容,如果想查看最终的结果,每次都要添加一个return ,第一个return 没有返回东西,自然打印出来是None.有用请采纳!

img

你这个是嵌套的json,提取要一层层的取,不然取不出来

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632

我这边也查到了,实际就是需要将每一次调用递归函数所获取到的值,再返回出去一次才行