python - 如何在 urlencoded 字符串中进行字符串替换

标签 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 等被视为格式字符串,所以我必须进行字符串连接。我怎样才能在这里使用普通的字符串替换。?

最佳答案

对字符串进行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)

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

关于python - 如何在 urlencoded 字符串中进行字符串替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1886660/

相关文章:

python - 迭代 pandas 数据框中的行并应用 lambda 函数

python - 使用 python 返回 map<string,string> 类型的 Hive 转换

c++ - 当我从内联函数返回字符串时,会创建多少个临时对象?

C++增强猫

python - 无法将字符串转换为 float

python - 在 f 字符串内循环作为嵌入的值

python - 计算 pyspark df 列中子字符串列表的出现次数

c - For 循环不会在 strlen 上停止

python - 使用 str.format() 访问对象属性

python - Django 帮助 : AttributeError: 'module' object has no attribute 'Charfield'