def replace_vars(data, repl_vars):
"""Return the given data structure with appropriate variables replaced.
Args:
data (Any): Data of an arbitrary type.
Returns:
Any: Data of the same time, possibly with replaced values.
"""
if isinstance(data, (six.text_type, six.binary_type)):
for k, v in repl_vars.items():
data = data.replace('${' + k + '}', v)
return data
if isinstance(data, collections.Sequence):
return type(data)([replace_vars(d, repl_vars) for d in data])
if isinstance(data, collections.Mapping):
return type(data)([(k, replace_vars(v, repl_vars))
for k, v in data.items()])
return data
评论列表
文章目录