0
基本上我生成一個文本文件中的JSON Terraform文件,但我不能讓它正確的方式格式化:從生成文本文件,JSON文件在Python和刪除不必要的括號
我想要的完成的Terraform文件如下所示:
{
"resource": {
"aws_route53_record": {
"analytics": {
"name": "analytics",
"records": ["1.2.3.4"],
"ttl": "1800",
"type": "A"
},
"analytics-test": {
"name": "analytics-test",
"records": ["1.2.3.4"],
"ttl": "300",
"type": "A"
}
}
}
}
這是Terraform解析json所需的格式。
所以我加載在Python的文本文件,每一個看起來像這樣線上產生一個列表的列表迭代:
records = [["analytics", "1.2.3.4", "1800", "A"],["analytics-test", "1.2.3.4", "300", "A"]]
我的代碼生成此刻的文件看起來像這樣
我創建包含像這樣的頂級變量的字典佔位符:
json_object = {'resource': {'aws_route53_record': None}}
然後,我通過看記錄並分配相應的值:
for each_list in data:
terrarecord = {
each_list[0]:{
"name": each_list[0],
"type": each_list[2],
"ttl": each_list[1],
"records": [each_list[3].replace('\n', '')]
}
}
record_holder.append(terrarecord)
的record_holder
對象是一個空列表,我則用它來填補json_objects
像這樣:
json_object['resource']['aws_route53_record'] = record_holder
這是什麼讓我在完成的文件是:
{
"resource": {
"aws_route53_record": [{
"analytics": {
"ttl": "1800",
"records": ["173.194.245.129"],
"name": "analytics",
"type": "A"
}
}, {
"analytics-test": {
"ttl": "300",
"records": ["130.211.89.168"],
"name": "analytics-test",
"type": "A"
}
}]
}
}
所以會有這樣做沒有增加額外的[]
和{}
s表示我的小環d一個更簡單的方法OES?
我的愚蠢無國界。感謝您向我指出這一點。我想我在自己的代碼中迷失了方向 –