私はPythonで何かに取り組んでおり、URLのスペースである%20からエスケープする必要があります。例えば:
"%20space%20in%20%d--" % ordnum
したがって、URLには%20を使用する必要がありますが、数値には%dを使用します。しかし、私はこのエラーを受け取ります:
TypeError: not enough arguments for format string
何が問題なのかはわかっていますが、%20から脱出して修正する方法がわかりません。
私はPythonで何かに取り組んでおり、URLのスペースである%20からエスケープする必要があります。例えば:
"%20space%20in%20%d--" % ordnum
したがって、URLには%20を使用する必要がありますが、数値には%dを使用します。しかし、私はこのエラーを受け取ります:
TypeError: not enough arguments for format string
何が問題なのかはわかっていますが、%20から脱出して修正する方法がわかりません。
1つの方法は、%
文字を2倍にすることです。
"%%20space%%20in%%20%d--" % ordnum
しかし、おそらくより良い方法は使用することurllib.quote_plus()
です:
urllib.quote_plus(" space in %d--" % ordnum)
Pythonのフォーマッターがそれを見ると、%20は%%20のように見えるはずです。Pythonの場合、%%は%にフォーマットされます。
>>> import urllib
>>> unquoted = urllib.unquote("%20space%20in%20%d--")
>>> ordnum = 15
>>> print unquoted % ordnum
space in 15--
これを解決するには、次の 3 つの方法があります。
%をエスケープします。
"%%%20dogs" % 11
新しい.format構文を使用します。
"{}%20dogs".format(11)
%20の代わりに + 記号を使用してください。これも可能だと思います。
"%+dogs" % 11