14

Python で urllib.url_encode の問題に直面しています。いくつかのコードで説明されたベット:

>>> from urllib import urlencode
>>> params = {'p' : '1 2 3 4 5&6', 'l' : 'ab|cd|ef'}
>>> urlencode(params)
'p=1+2+3+4+5%266&l=ab%7Ccd%7Cef'

パイプ ('|') を l パラメータに保持したい。方法を教えてください。

結果は

'p=1+2+3+4+5%266&l=ab|cd|ef'

PS: URL を手動でまとめたくはありませんが、そのためには urlencode を使用します。

ありがとう -パット

4

2 に答える 2

22

マッピング オブジェクトまたは 2 要素タプルのシーケンスを「パーセント エンコードされた」文字列に変換します[...]

urlencode()メソッドは期待どおりに動作しています。エンコードを防止したい場合は、最初にオブジェクト全体をエンコードしてから、エンコードされた文字をパイプに置き換えることができます。

>>> u = urlencode(params)
>>> u.replace('%7C', '|')
'p=1+2+3+4+5%266&l=ab|cd|ef'  
于 2012-07-03T19:17:51.667 に答える
2

Python 3 ではより簡単です。

urllib.parse.urlencode(params, safe='|')
于 2012-07-04T02:15:18.343 に答える