Van_pre 2022-01-24 18:06 采纳率: 100%
浏览 20
已结题

为什么程序会返回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'))

这是为啥啊?

  • 写回答

4条回答 默认 最新

  • Run_youngman 2022-01-24 19:11
    关注

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

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 2月1日
  • 已采纳回答 1月24日
  • 创建了问题 1月24日