1

私はPythonで何かに取り組んでおり、URLのスペースである%20からエスケープする必要があります。例えば:

"%20space%20in%20%d--" % ordnum

したがって、URLには%20を使用する必要がありますが、数値には%dを使用します。しかし、私はこのエラーを受け取ります:

TypeError: not enough arguments for format string

何が問題なのかはわかっていますが、%20から脱出して修正する方法がわかりません。

4

4 に答える 4

6

1つの方法は、%文字を2倍にすることです。

"%%20space%%20in%%20%d--" % ordnum

しかし、おそらくより良い方法は使用することurllib.quote_plus()です:

urllib.quote_plus(" space in %d--" % ordnum)
于 2011-02-07T21:49:44.430 に答える
4

Pythonのフォーマッターがそれを見ると、%20は%%20のように見えるはずです。Pythonの場合、%%は%にフォーマットされます。

于 2011-02-07T21:50:03.710 に答える
1
>>> import urllib
>>> unquoted = urllib.unquote("%20space%20in%20%d--")
>>> ordnum = 15
>>> print unquoted % ordnum
 space in 15--
于 2011-02-07T21:52:30.710 に答える
0

これを解決するには、次の 3 つの方法があります。

  1. %をエスケープします。

    "%%%20dogs" % 11
    
  2. 新しい.format構文を使用します。

    "{}%20dogs".format(11)
    
  3. %20の代わりに + 記号を使用してください。これも可能だと思います。

    "%+dogs" % 11
    
于 2011-02-07T21:55:32.800 に答える