我使用的API根据成功/失败有不同的json响应。它们不是HTTP错误,而是json主体中的代码。
j1 = {'status': '400','message': 'invalid'}
j2 = {'status': '404','message': 'wrong_info'}
j3 = {'info': 'your_info','other_info':'54321'}
api_response = j3
{'info': 'your_info','other_info':'54321'}
for row in df:
# do API call and get api_response
# if the api response has an error code (first digit== 4), just skip it
if api_response['status'][:1]=='4':
pass
# if it has an 'info' key, do something
elif api_response['facebook']:
print('Found My Info')
KeyError Traceback (most recent call last)
<ipython-input-168-7a657630291c> in <module>
----> 1 if api_response['status'][:1]=='4':
2 pass
3 else:
4 if api_response['info']:
5 print('Found My Info')
KeyError: 'status'
我添加了一个try except
,但感觉我只是把事情放在一起,忽略了问题。这是一种可接受的或“pythonic”的方式来处理类似的不同响应吗?另外,如果存在400/404
状态,我是否正确地使用pass
来跳过该行?
try:
if api_response['status'][:1]=='4':
pass
except:
if api_response['info']:
print('Found My Info')
Found My Info
检查状态:400/404
导致错误。我以为els
会解决这个问题?
不,因为您试图访问一个不存在的密钥,所以首先您需要测试它是否存在!
if 'status' in api_response and api_response['status'] in ('400', '404'):
print('bad request')
elif 'info' in api_response:
print('Found My Info', api_response['info'])
问题内容: 我试图打开登录页面(GET),获取网络服务器提供的cookie,然后提交用户名和密码对以登录网站(POST)。 看着这个Stackoverflow问题/答案,我认为我会做以下事情: 但是,标头中有一个,但该对象中没有改变。实际上,链接问题的回答将表明没有内容被填充。 我在代码中通过使用标头字典来解决此问题,并在执行GET或POST之后使用此标头处理: 然后在请求方法中传递标头。这是正确
我有一个在数据库上运行查询的API。由于查询执行时间可能很长,比如3分钟到10分钟,我的负载平衡器返回“上游请求超时”,但我可以看到查询已提交到数据源,但对最终用户来说,它显示了错误的消息。如何应对这种情况? 我的职能
我一直试图向facebook发送HTTP POST请求,但没有成功。我从服务器收到以下响应: HTTP/1.1 400不良请求内容-类型:text/html;charset=utf-8日期:2016年12月10日星期六21:28:17 GMT连接:关闭内容-长度:2959 Facebook |错误 抱歉,出了点问题,我们正在修理,会尽快修好的 我的密码 我做错了什么?
我试图在Flutter应用程序中使用AWS DynamoDB,由于缺乏官方的AWS Dart SDK,我被迫使用低级别的HTTP REST API。 签署AWS HTTP请求的方法非常繁琐,但使用AWS提供的示例作为指导,我能够相对轻松地将Python转换为Dart。最终结果是两组代码产生相同的身份验证签名。 当我真的去发送请求时,我的问题来了。Python的工作原理与预期一致,但使用Dart的H
我知道这个问题已经被问了很多,但我所看到的答案都没有帮助我澄清这个问题。我需要更多的指导方针,而不是一个具体的答案。 错误,没有这样的用户 到目前为止,我所尝试的是为列表中收到的每个对象创建一个类: 和Api,我认为这就是问题所在: 提前感谢!!
前言 Networkclient的poll函数: 其实是不断去查询请求是否超时 对 因为长期没有收到请求,设置状态为disconnect,然后希望重新建立连接