Python If/else语句获胜';不能在函数中执行
我正在制作一个函数,在这个函数中,我可以查看输入的代码是否已经有一个与之关联的活动帐户 为此,我简单地制作了以下函数:Python If/else语句获胜';不能在函数中执行,python,json,Python,Json,我正在制作一个函数,在这个函数中,我可以查看输入的代码是否已经有一个与之关联的活动帐户 为此,我简单地制作了以下函数: def check_code(): r=请求。获取(url) response=r.json() 如果响应['account']['active']为真: status=“活动帐户” 其他: status=“非活动帐户” 返回状态 现在,当keyaccount不存在时,我希望运行else语句 然而,我得到: keyrerror:“帐户” 响应代码显示如下: 激活:“未激活”
def check_code():
r=请求。获取(url)
response=r.json()
如果响应['account']['active']为真:
status=“活动帐户”
其他:
status=“非活动帐户”
返回状态
现在,当keyaccount
不存在时,我希望运行else
语句
然而,我得到:
keyrerror:“帐户”
响应代码显示如下:
激活:“未激活”
我的整个if/else语句只是检查帐户是否处于活动状态您可以使用以下代码
def check_code():
r = requests.get(url)
response = r.json()
if (account := response.get('account')) and account.get('active'):
return "active account "
else:
return "not active account "
您只能在Python3.8中执行此操作。这很有效!但是,我的方法有什么问题?@genovese您试图访问一个不存在的密钥,这就是引发异常的原因
.get()
如果请求的键不存在(或者如果作为第二个参数提供默认值),则返回None
,谢谢!但是,现在我得到了json.decoder.JSONDecodeError:期望值:第1行第1列(char 0)
过一会儿每个人?(在x
检查量之后似乎是随机的)在字典中使用get方法始终是最佳实践。Bcz get方法在未找到任何特定键时返回None。所以你的进一步执行将通过其他部分。在您的方法中,response[“account”]如果找不到键,则会引发keyrerror,这里的键是“account”。因此,您的程序将退出,而不是进一步执行。