当尝试使用请求模块在Python中进行API调用时,由于验证被设置为false,因此我收到一条警告消息,打印到stdout。我正在寻找如何抑制这些警告消息从打印到stdout。我已经尝试实现urllib3.disable_warnings()函数来实现这一目标,但没有运气。任何指针都是适用的。
import urllib3
import requests
HOSTNAME = "https://website.example.com"
ADMIN = "admin"
PW = "password"
class ApiCall(object):
def __init__(self, username=ADMIN, password=PW, url=HOSTNAME, ssl_warnings=False, ssl_verify=False):
# disable SSL warnings by default
if not ssl_warnings:
urllib3.disable_warnings()
# create requests token to be used across the program
self.client = requests.Session()
self.client.auth = (username, password)
self.client.verify = ssl_verify
def search(self, call=None, name=None):
ret = self.client.get(HOSTNAME + call)
答案 0 :(得分:0)
作为这样做的一种附加方式,您可以使上下文管理器在某些上下文中重定向stdout:
例如,我要将stdout
重定向到stderror
import contextlib
import sys
@contextlib.contextmanager
def redirectOut():
sout = sys.stdout
sys.stdout = sys.stderr
yield
sys.stdout = sout
然后您可以将其与with
:
with redirectOut():
#do your stuff here
该上下文中的所有内容都将打印到stderr