JSON形式の構成ファイルを受け取り、それをテンプレートファイルに適用し(ファイルを文字列としてロードし、string.formatメソッドを適用します)、出力を出力ファイルに書き込む簡単なPythonスクリプトを作成しています。
構成ファイルは次のようになります (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 配列内のプロパティを参照するための正しい構文が存在する場合は、それを優先したいと考えています。