我正在编写一个简单的 Python 脚本,它将采用 json 格式的配置文件,将其应用于模板文件(将文件加载为字符串,然后应用 string.format 方法),然后将输出写入输出文件。
配置文件看起来有点像这样(JSON):
{
"param1": "param",
"param2": [
"list1": "list item 1",
"list2": "list item 2"
]
}
模板文件看起来有点像这样(纯文本):
Param1={param1}
List1={param2[0].list1}
List2={param2[0].list2}
python脚本看起来很像这样(Python):
#! /usr/bin/env python
import sys, json
if len(sys.argv) < 4:
sys.exit("Invalid arguments")
config_file = open(sys.argv[1])
config_json = json.loads(config_file.read())
config_file.close()
template_file = open(sys.argv[2])
template_data = template_file.read()
template_file.close()
output_data = template_data.format(**config_json)
output_file = open(sys.argv[3], 'w')
output_file.write(output_data)
output_file.close()
Python 解释器错误如下:
AttributeError: 'dict' object has no attribute 'list1'
有人可以向我解释如何解决这个问题吗?如果可能的话,我想避免更改 Python 脚本,并倾向于使用正确的语法来引用 param2 对象数组中的属性(如果存在这样的语法)。