Python html"&&引用;和参数
我正在使用Python中的urllib2通过echonest api传递几个参数。一些艺术家和曲目名称带有符号(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
&
)字符
例如:
汤米·詹姆斯和肖德尔夫妇==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文件,并从每个单元格中提取值。