以编程方式替换变量
我有一个像下面这样的字符串
str = "http://{ server }:{ port }/images/{ server }/index.html"
上面的字符串可以有任意数量的变量,并且一个变量可以在同一个字符串中重复,如字符串所示。
此外,我有一个输入(字典)是这样的:
dict = {"server": "xtz", "port": 8080}
如何以编程方式用给定字典中的值替换变量。
我希望写一个函数来做到这一点。
回答
str.format_map() 来救援!
>>> data = {"server": "xtz", "port": 8080}
>>> template = "http://{server}:{port}/images/{server}/index.html"
>>> template.format_map(data)
'http://xtz:8080/images/xtz/index.html'