在bash或Python中读取模板JSON文件并创建带有替换的新文件
我想为不同的环境提供一个稍微不同的JSON文件 如果我创建了一个模板文件,其中包含一些变量,这些变量将根据环境变量进行替换,那么实现这一点的最简单方法是什么 我搜索了一个用于模板化的python库,这不可避免地会产生HTML模板。他们中有人会使用json文件吗 我可以使用在bash或Python中读取模板JSON文件并创建带有替换的新文件,python,json,Python,Json,我想为不同的环境提供一个稍微不同的JSON文件 如果我创建了一个模板文件,其中包含一些变量,这些变量将根据环境变量进行替换,那么实现这一点的最简单方法是什么 我搜索了一个用于模板化的python库,这不可避免地会产生HTML模板。他们中有人会使用json文件吗 我可以使用json.load,然后使用json.dumps进行编写,但是如何进行替换呢 此任务也可以在bash中实现,而不是在python中实现 该文件包含招摇过市的文档。您只需要占位符,然后打开该文件,调用。替换几次(或使用函数re.s
json.load
,然后使用json.dumps
进行编写,但是如何进行替换呢
此任务也可以在bash中实现,而不是在python中实现
该文件包含招摇过市的文档。您只需要占位符,然后打开该文件,调用
。替换几次(或使用函数re.sub
),然后对生成的字符串使用json.loads
test.json
{"param": "<param placeholder>"}
{
"param1": "<param1 placeholder>",
"param2": "<param2 placeholder>",
"param3": "<param3 placeholder>"
}
将re.sub
与函数和命令一起使用:
test.json
{"param": "<param placeholder>"}
{
"param1": "<param1 placeholder>",
"param2": "<param2 placeholder>",
"param3": "<param3 placeholder>"
}
import json
import re
with open('test.json') as f:
template_json = f.read()
values = {
'param1': 'param1 value',
'param2': 'param2 value',
'param3': 'param3 value'
}
after_replace = re.sub('<(.+?) placeholder>', lambda match: values.get(match.group(1)), template_json)
print(json.loads(after_replace))
{'param1': 'param1 value', 'param2': 'param2 value', 'param3': 'param3 value'}