BASE_URL = 'http://foobar.com?foo=%s'
variable = 'bar'
final_url = BASE_URL % (variable)
Run Code Online (Sandbox Code Playgroud)
我得到这个'http://foobar.com?foo=bar'#它忽略了内部字符串.
但我想要这样的东西 'http://foobar.com?foo='bar''
谢谢你的回答.
你能帮我解决几乎同样的问题:
lst = ['foo', 'bar', 'foo bar']
[str(l) for l in lst if ' ' in l]
Run Code Online (Sandbox Code Playgroud)
我明白['foo bar']但是我想要它[''foo bar'']
提前致谢.
改变你BASE_URL要么
BASE_URL = "http://foobar.com?foo='%s'"
Run Code Online (Sandbox Code Playgroud)
要么
BASE_URL = 'http://foobar.com?foo=\'%s\''
Run Code Online (Sandbox Code Playgroud)
如果您正在使用URL参数,则使用urllib.urlencode可能更安全:
import urllib
BASE_URL = 'http://foobar.com/?%s'
print BASE_URL % urllib.urlencode({
'foo': 'bar',
})
Run Code Online (Sandbox Code Playgroud)
关于报价:为什么你明确地想要它们?通常,您的HTTP包装器将为您处理所有这些.
关于你的第二个问题:如果你绝对也希望在那里有引号,你仍然必须在追加包含的字符串时逃避它们,或者(可能更安全的方式)将使用repr(...)
lst = ['foo', 'bar', 'foo bar']
lst2 = []
for l in lst:
if ' ' in l:
lst2.append(repr(l))
Run Code Online (Sandbox Code Playgroud)