2017-08-23 2 views
0

Wenn Sie versuchen, einen API-Aufruf in Python mithilfe von Requests-Modul, bekomme ich eine Warnmeldung auf Stdout gedruckt, um zu überprüfen, ob auf false gesetzt ist. Ich bin auf der Suche nach, wie diese Warnmeldungen vom Drucken auf stdout unterdrückt werden. Ich habe bereits versucht, die Funktion urllib3.disable_warnings() zu implementieren, um dies zu erreichen, aber ohne Glück. Alle Zeiger werden geschätzt.Wie stdout Warnmeldungen in Python zu unterdrücken

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) 
+1

Hat 'requests' package es ist' urllib3' - 'requests.packages.urllib3.disable_warnings()'? – AChampion

+0

Ich habe dies in meinem Code hinzugefügt, aber ich glaube, ich benutze im falschen Kontext, ich suche nach und wie es verwendet wird. – SkyVar

Antwort

0

Als aditional Art und Weise tun, können Sie einen Kontext-Manager machen stdout in einem bestimmten Kontext umzuleiten:

Gonna Beispiel im stdout zu stderror

import contextlib 
import sys 
@contextlib.contextmanager 
def redirectOut(): 
    sout = sys.stdout 
    sys.stdout = sys.stderr 
    yield 
    sys.stdout = sout 

Dann umleiten können Sie verwenden Sie es mit with:

Alles innerhalb dieses Kontexts wird in stderr ausgedruckt