0

クエリ文字列から特定のアイテムを削除しようとしています。これを行う最善の方法は、クエリ文字列を解析し、繰り返し、不要な特定のキーを削除して、すべてを結合することです。

pythonガイドに従って、彼らが使用すると言っているurlencode関数は、期待どおりに機能しないようです。

次のコードは、単純にクエリ文字列を解析して結合し直します。空の値を保持するように設定しました。

>>> f = 'name=John%20Doe&seq=123412412412&wer'
>>> q = urlparse.parse_qs(f, keep_blank_values=True)
>>> q
{'wer': [''], 'name': ['John Doe'], 'seq': ['123412412412']}
>>> urllib.urlencode(q)
'wer=%5B%27%27%5D&name=%5B%27John+Doe%27%5D&seq=%5B%27123412412412%27%5D'

クエリ コードの結果が f 文字列と同じになることを期待しています。

http://docs.python.org/2/library/urlparse.html#urlparse.parse_qs

Use the urllib.urlencode() function to convert such dictionaries into query strings.

だから、辞書の各項目で urlencode を呼び出して、q 変数をループして文字列を手動で作成する必要があると思いますか? 何か良い方法はないでしょうか...

Python 2.7 の使用

ありがとう

4

1 に答える 1

1

doseqクエリdictにシーケンスがあるため、urlencodeの引数を使用する必要があります。

>>> urllib.urlencode(q, doseq=1)
'wer=&name=John+Doe&seq=123412412412'
于 2013-02-24T09:42:01.317 に答える