3

私はこれをあちこち探していましたが、問題を解決できませんでした。

ローカル API を使用して一部のデータを取得しています。その API では、ワイルドカードはパーセント文字%です。

URL は次のようになります。urlReq = 'http://myApiURL?ID=something&parameter=%w42'

そして、これを get 関数に渡します。

req = requests.get(urlReq,auth=HTTPBasicAuth(user, pass))

次のエラーが表示されます。InvalidURL: Invalid percent-escape sequence: 'w4'

%を使用して文字をエスケープしようと%%しましたが、無駄でした。私も次のことを試しました:

urlReq = 'http://myApiURL?ID=something&parameter=%sw42' % '%'しかし、うまくいきませんでした。

これを解決する方法を知っている人はいますか?

PS私はPython 2.7.8を使用しています::アナコンダ1.9.1(64ビット)

4

4 に答える 4

4

あなたは見てurllib.quoteいるべきです-それはトリックをするはずです。ドキュメントを参照してください。

この回答を拡張するには: 問題は、%(+ 16 進数) がURL 内の特殊文字のエスケープ シーケンスであることです。サーバーにリテラルを解釈させたい場合は%、それもエスケープする必要があります。これは、に置き換えることによって行われ%25ます。前述の qoute 関数は、そのようなことを行います。

于 2016-10-21T07:46:39.593 に答える