1
我有一個列表,其中我將一個請求獲取調用的url和身份驗證參數。如果我以這種方式嘗試呼叫,我會得到身份驗證錯誤(401),但是如果我明確地在呼叫中發現身份驗證,則會自行解決身份驗證問題。爲什麼我不能以這種方式包含身份驗證,並期望它在通話中正確「爆炸」?Python請求調用不按預期方式處理身份驗證
parms = []
parms.append(url)
parms.append('auth=(''UID'', ''PWD'')')
response = requests.get(*parms)
由於無法識別身份驗證,因此會導致404錯誤。但是,如果我這樣做的話。對我來說這些看起來是一樣的。單引號只有不同才能使字符串正確追加到列表中。我認爲會導致兩個參數,第一種方式 - URL,並權威性
parms = []
parms.append(url)
response = requests.get(*parms, auth=('UID', 'PWD'))
謝謝 - 這有助於很多。還有一個問題,如果我可能 - 我從數據庫中提取認證信息 - 「('UID','PWD')」部分。但是,當它來自數據庫時,它是一個字符串。它看起來是什麼傳遞給字典不是一個字符串,本身(值沒有單引號('UID','PWD')。如果我把我的數據庫結果放在字典中,我得到一個錯誤「TypeError:'str 'object is not callable 「。我如何將數據庫字符串轉換爲正確的字典? – efultz
我想到了第二個問題 - 我做了以下 - kwargs ['auth'] = ast。 literal_eval(header [2])。這將字典值放入請求調用工作所需的表示形式。 – efultz
Nice!'ast.literal_eval'是安全的(從不使用普通的'eval'和用戶提供的數據) –