如何在urlencoded字符串中替换字符串

agi*_*liq 1 python string

我有一个字符串 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等等被视为格式字符串,所以我必须做一个字符串conactination.我怎样才能在这里使用普通的字符串替换.

Con*_*yer 5

url对字符串进行编码,进行格式化,然后再次对其进行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)
Run Code Online (Sandbox Code Playgroud)

正如一位评论者指出的那样,使用任意用户输入的字符串进行格式化作为格式规范在历史上是危险的,并且当然是个坏主意.