1
私はリクエストを取得するためのURLと認証パラメータを設定しています。私がこのように呼び出すと、認証エラー(401)が出ますが、コール上で明示的にauthを実行すると、何かがうまく動作します。なぜこのような方法でauthを組み込み、コールで正しく「爆発する」ことを期待できないのですか?Pythonは、認証が期待通りに処理されないように要求しています。
parms = []
parms.append(url)
parms.append('auth=(''UID'', ''PWD'')')
response = requests.get(*parms)
これは認証を認識していないため、404となります。しかし、もし私がこれを行うと、それは動作します。私にとっては、これらは同じように見えます。一重引用符は、リストに適切に追加する文字列を得るためにのみ異なります。私は最初の方法は、2つのパラメータにつながるだろうと思った - URLと認証
parms = []
parms.append(url)
response = requests.get(*parms, auth=('UID', 'PWD'))
ありがとうございました。もう1つの質問ですが、データベースから認証情報を引き出している場合は、「(UID、PWD)」の部分です。しかし、データベースから来るときは文字列です。辞書に渡すものは文字列ではなく、値( 'UID'、 'PWD')を一重引用符で囲まずに表示されます。辞書にデータベース結果を格納すると、 "TypeError: 'str 「オブジェクトは呼び出し可能ではありません 」データベース文字列を辞書で正しく取得するために呼び出されたものに変換するにはどうすればよいですか? – efultz
2番目の問題を解消しました - kwargs ['auth'] = ast。 – efultz
Nice! 'ast.literal_eval'は安全です(ユーザが提供するデータでは平らな' eval'を使わないでください) –