Wel*_*lls 5 python string-formatting
以下代码:
def __init__(self, url, **kwargs):
for key in kwargs.keys():
url = url.replace('%%s%' % key, str(kwargs[key]))
Run Code Online (Sandbox Code Playgroud)
引发以下异常:
File "/home/wells/py-mlb/lib/fetcher.py", line 25, in __init__
url = url.replace('%%s%' % key, str(kwargs[key]))
ValueError: incomplete format
Run Code Online (Sandbox Code Playgroud)
该字符串的格式如下:
http://www.blah.com?id=%PLAYER_ID%
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
Ada*_*eld 15
你可能想要格式字符串%%%s%%而不是%%s%.
两个连续的%符号被解释为文字%,所以在你的版本中,你有一个文字%,一个文字s,然后一个单独的%,它期待一个格式说明符.您需要将每个文字加倍%以不被解释为格式字符串,因此您需要%%%s%%:literal %,%sfor string,literal %.