求教各位大大,python如何替换每一个{xxx}

xtaqvedx 2016-01-13 04:27:06
程序如下:
>>> url = "/libraray/{lId}/users/{uid}/products/?key={key}"
>>> url
'/libraray/{lId}/users/{uid}/products/?key={key}'
>>> arr
['1', '2', 'abc']

怎么把arr里每一个元素分别替换(lId}, {uid},{key}?
我的想法是可以做个循环 replace每一个 {...},但是我不知道{}里是什么内容
请各位大大帮忙下
谢谢
...全文
161 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
xtaqvedx 2016-01-14
  • 打赏
  • 举报
回复
学习了一下,正则,解决了 import re re.sub('\{\w+\}',arr[0],url,1) 在做个循环就行了
xtaqvedx 2016-01-14
  • 打赏
  • 举报
回复
引用 2 楼 zzgzzg00 的回复:

url = "/libraray/{lId}/users/{uid}/products/?key={key}"
arr=['1', '2', 'abc']
arrkey=['lId','uid','key']
x=url.format_map(dict(zip(arrkey,arr)))
print(x)
谢谢解答,但是我事先不知道{}里的内容,所以没法事先定义arrkey
xtaqvedx 2016-01-14
  • 打赏
  • 举报
回复
引用 1 楼 pcboyxhy 的回复:
url.format(lId='1', uid='2', key='abc')
谢谢,但是我{}里的内容不固定,我没法事先定义
pcboyxhy 2016-01-14
  • 打赏
  • 举报
回复
using re here is not a good choice.
>>> url="/libraray/{lId}/users/{uid}/products/?key={key}";
>>> arr=['1', '2', 'abc']
>>> keys=["lId","uid","key"]
>>> params={keys[i] : arr[i] for i in range(len(keys))}
>>> url.format(**params)
'/libraray/1/users/2/products/?key=abc'
似梦飞花 2016-01-13
  • 打赏
  • 举报
回复

url = "/libraray/{lId}/users/{uid}/products/?key={key}"
arr=['1', '2', 'abc']
arrkey=['lId','uid','key']
x=url.format_map(dict(zip(arrkey,arr)))
print(x)
pcboyxhy 2016-01-13
  • 打赏
  • 举报
回复
url.format(lId='1', uid='2', key='abc')

37,719

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧