python Python 3.x中请求模块的一般用例错误处理示例
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python Python 3.x中请求模块的一般用例错误处理示例相关的知识,希望对你有一定的参考价值。
import json
import sys
import requests
def exit_with_error(e):
sys.stderr.write(str(e))
sys.exit(1)
def request(url, **kwds):
try:
repsonse = requests.get(url, **kwds)
except RequestException as e:
exit_with_error(e)
if response.status_code == 200:
try:
return response.json()
except ValueError as e:
exit_with_error(e)
sys.stderr.write(str(e))
try:
sys.stderr.write(json.dumps(response.json(), indent=2))
except (TypeError, json.JSONDecodeError):
pass
import json
import sys
import requests
def request(url, auth=None, headers=None, params=None, data=None, method='get'):
try:
if data is not None:
repsonse = requests.get(url, auth=auth, headers=headers, params=params)
kwds = dict(auth=auth, headers=headers, params=params, data=data)
response = getattr(requests, method)(url, **kwds)
if response.status_code == 200:
return response.json()
print(json.dumps(response.json(), indent=2), file=sys.stderr)
response.raise_for_status()
except (RequestException, HTTPError, TypeError, ValueError,
json.JSONDecodeError) as e:
print(str(e), file=sys.stderr)
sys.exit(1)
以上是关于python Python 3.x中请求模块的一般用例错误处理示例的主要内容,如果未能解决你的问题,请参考以下文章
python内建模块发起HTTP(S)请求
Python 3.X 调用多线程C模块,并在C模块中回调python函数的示例
无法在 Python 2.x 和 Python 3.x 中导入 turtle 模块
在 Python 3.x 中卸载模块(与重新加载不同)[重复]
python 3.x 分析日志的模块(正则匹配)
Python 2.7.x 和 3.x 版本的语法区别