Python 将空间转换为列表中的%20
我需要将python数组中的api帖子的空格转换为%20Python 将空间转换为列表中的%20,python,urlencode,Python,Urlencode,我需要将python数组中的api帖子的空格转换为%20 tree = et.parse(os.environ['SPRINT_XML']) olp = tree.findall(".//string") if not olp: print colored('FAILED', 'red') +" No jobs accociated to this view" exit(1) joblist = [t.text for t in olp] 如何对上面的t.text执行此操作?用于此:
tree = et.parse(os.environ['SPRINT_XML'])
olp = tree.findall(".//string")
if not olp:
print colored('FAILED', 'red') +" No jobs accociated to this view"
exit(1)
joblist = [t.text for t in olp]
如何对上面的t.text执行此操作?用于此:
import urllib
...
joblist = [urllib.quote_plus(t.text) for t in olp]
使用
String.replace()
方法,如下所述:
因此,对于
t.text
,它应该是t.text.replace(“,“%20”)
我建议使用urllib.parse
模块及其quote()
函数。
Python3的示例:
from urllib.parse import quote
text_encoded = quote(t.text)
注意:在您的情况下,使用
quote\u plus()
不起作用,因为此函数将空格替换为plus char。以下是我发现的可能对您有所帮助的内容:
def隔套更换:
strArr=列表
对于枚举中的i,c(strArr):
如果c='':strArr[i]='%20'
返回“”。加入(strArr)
df[“名称”]=df[“名称”]。应用(间隔符替换)
对我来说似乎是个双重问题。您知道如何转换单个元素吗?其他字符呢,它们不也应该进行URL编码吗?请澄清您的问题:您想进行URL编码,还是简单地替换空格?在Python3中,它工作得非常完美,比上述答案更简单。不知道为什么每个人都认为urllib对于实现相同的结果如此必要。@Jordan如果用户的意图是使用动态URL,则转义整个字符串比替换单个字符的多次出现更安全。urllib
答案可以说是,更可取,因为它使您的意图更清晰:您正在对字符串进行URL编码。将空格替换为%20
就是这样做的(假设空格是您唯一需要担心的事情)。编写解释自身的代码更好。谢谢,这实际上实现了我想要的功能。urllib用+替换s空间,而不是我想要的。urllib没有名为parse@TylerR是的,它在python 2中有urllib.quote OP的代码在python 2中,正如您从print
语句中看到的,这应该是可以接受的答案,因为它更像python