Python 串中串

Python 串中串,python,string,Python,String,我得到这个'http://foobar.com?foo=bar“”它忽略内部字符串 但是我想要这样的东西http://foobar.com?foo=“条形图” 谢谢你的回答 你能帮我解决几乎相同的问题吗: BASE_URL = 'http://foobar.com?foo=%s' variable = 'bar' final_url = BASE_URL % (variable) 我得到了['foo-bar']但是我想要它就像['foo-bar'] 提前感谢。将您的基本URL更改为 lst

我得到这个
'http://foobar.com?foo=bar“
”它忽略内部字符串

但是我想要这样的东西http://foobar.com?foo=“条形图”

谢谢你的回答

你能帮我解决几乎相同的问题吗:

BASE_URL = 'http://foobar.com?foo=%s'

variable = 'bar'

final_url = BASE_URL % (variable)
我得到了
['foo-bar']
但是我想要它就像
['foo-bar']


提前感谢。

将您的
基本URL
更改为

lst = ['foo', 'bar', 'foo bar']

[str(l) for l in lst if ' ' in l] 


如果您使用的是URL参数,那么使用urllib.urlencode可能更安全:

BASE_URL = 'http://foobar.com?foo=\'%s\''
关于报价:为什么您明确地想要它们?通常,HTTP包装器将为您处理所有这些

关于您的第二个问题:如果您确实希望在其中包含引号,那么您仍然必须在附加包含的字符串时对其进行转义,或者(可能是更安全的方法)使用repr(…)


您似乎对字符串文字的工作方式有点困惑

当您说
s='这是一个字符串'
时,您是在给变量分配一个字符串。什么弦?嗯,一个在程序中硬编码的字符串文本

Python使用撇号表示字符串文字的开始和结束,其中的任何内容都是字符串的内容


这可能是编程初学者遇到的第一个难题之一:在程序源代码中编写的内容与在运行时实际发生的内容之间存在差异。您可能需要学习一些教程(我听说“深入Python”很不错)。

如果您想在URL中显示单引号,可以使用

lst = ['foo', 'bar', 'foo bar']
lst2 = []

for l in lst:
    if ' ' in l:
        lst2.append(repr(l))

但是,如果变量来自某个地方(如用户输入),那么这个变量是非常不安全的。

首先,为什么您绝对希望引号出现在那里?实际上,我正在尝试使用twitter搜索api获取与我的关键字相关的搜索结果。但是,当搜索字符串中有空格时,它会以bar'ah OK:-)的形式询问它。请始终写下为什么要从代码中获得某种行为。这使你更容易理解你的整个问题:-)。。。过早点击按钮:对于这个特殊问题,只需将引号添加到字符串中,但仍然让urlencode在其上运行,因为URL中没有“”(空格)字符:-)
import urllib

BASE_URL = 'http://foobar.com/?%s'
print BASE_URL % urllib.urlencode({
   'foo': 'bar',   
})
lst = ['foo', 'bar', 'foo bar']
lst2 = []

for l in lst:
    if ' ' in l:
        lst2.append(repr(l))
BASE_URL = 'http://foobar.com?foo=%s'
variable  = "'bar'"
final_url = BASE_URL % (variable)