Python string.format()复杂对象类型

时间:2012-06-28 12:41:33

标签: python

我正在编写一个简单的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对象数组中的属性(如果存在这样的语法)。

0 个答案:

没有答案