Python html"&&引用;和参数

Python html"&&引用;和参数,python,html,api,python-2.7,Python,Html,Api,Python 2.7,我正在使用Python中的urllib2通过echonest api传递几个参数。一些艺术家和曲目名称带有符号(&)字符 例如: 汤米·詹姆斯和肖德尔夫妇==artist=Tommy%20James%20和20The%20Shondells 如何正确地通过api参数传递符号和字符 完整api查询: http://developer.echonest.com/api/v4/song/search?api_key=KEY_GOES_HERE&artist=Tommy%20James%20&20The

我正在使用Python中的urllib2通过echonest api传递几个参数。一些艺术家和曲目名称带有符号(
&
)字符

例如: 汤米·詹姆斯和肖德尔夫妇==
artist=Tommy%20James%20和20The%20Shondells

如何正确地通过api参数传递符号和字符

完整api查询:


http://developer.echonest.com/api/v4/song/search?api_key=KEY_GOES_HERE&artist=Tommy%20James%20&20The%20Shondells&title=Crimson%20and%20Clover

在将artist变量添加到url之前,请先尝试将每次出现的“&”替换为相应的uri编码“%26”

artist = artist.replace('&', '%26')

您没有说明如何构建查询字符串,但我建议您检查、和函数,而不是手动编码任何内容。后者将对传入的键和值应用
quote\u plus()

>>> from urllib import urlencode
>>> artist = 'Tommy James & The Shondells'
>>> api_key = 'KEY_GOES_HERE'
>>> urlencode({'artist': artist, 'api_key': api_key})
'api_key=KEY_GOES_HERE&artist=Tommy+James+%26+The+Shondells'

现在,您的
artist
条目已使用
+
空格和
%26
符号进行编码。

您现在如何编码参数?您通常会使用
urllib.quote
来处理编码,它会为您正确编码
&
。您是否尝试过
%26
?您应该使用
urllib.quote()
而不是手动替换任何此类字符。如果名称中有
=
字符怎么办?或者
/
?这正是我想要的,我不知道.quote()方法。谢谢@迈克:那个库中还有更多的函数,你可能需要看看。例如,url为您引用键和值。所有伟大的资源,谢谢。我正在迭代我创建的csv文件,并从每个单元格中提取值。