想写一个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.有用请采纳!
你这个是嵌套的json,提取要一层层的取,不然取不出来
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!我这边也查到了,实际就是需要将每一次调用递归函数所获取到的值,再返回出去一次才行