我有一个像 x = "http://query.yahooapis.com/v1/public/yql?q=select%20owner%2Curls%20from%20flickr.photos.info%20where%20photo_id% 这样的字符串3D'%s'&format=json"
如果我执行 x % 10
失败,因为有 %20f
等被视为格式字符串,所以我必须进行字符串连接。我怎样才能在这里使用普通的字符串替换。?
对字符串进行urldecode,格式化,然后再次urlencode:
import urllib
x = "http://query.yahooapis.com/v1/public/yql?q=select%20owner%2Curls%20from%20flickr.photos.info%20where%20photo_id%3D'%s'&format=json"
tmp = urllib.unquote(x)
tmp2 = tmp % (foo, bar)
x = urllib.quote(tmp2)
正如一位评论者指出的那样,使用任意用户输入的字符串作为格式规范进行格式化在历史上是危险的,当然不是一个好主意。
我是一名优秀的程序员,十分优秀!