循环遍历多维列表,并从Python中的元素创建单独的json对象

时间:2016-11-11 14:06:34

标签: python json loops dictionary terraform

我有一个数据列表:

data = [['domain', '600', '10.0.0.1'],['domain2', '600', '10.0.0.2'],['domain3', '200', '10.0.0.3']]

我想获取这些数据并用它来创建一个json格式的terraform文件,如下所示:

{
 "resource": 
     { "aws_route53_record": {
         "recordname": {
              "zone_id": "",
              "name": data[0][0],  # --> takes 'domain' from the data list and inputs it here
              "type": data[0][1], # --> takes '600' etc
              "ttl": data[0][2]
               # rest of code
            }

       }

 }

我需要创建相当多的这些对象,但每个对象的字符串保持不变。

为了参考并更好地了解示例,请参阅Terraform JSON语法指南here,并且可以找到通过Terraform创建route53记录的指南here

一旦我从列表中的第一个索引创建了第一个JSON对象,我就会想要继续data[1][x]

我在Python上的初学者水平相当高,所以我希望这是足够的信息继续下去

正如我试过的一个测试:

for item in data:
   print(item[0])

打印:

['domain', '600', '10.0.0.1']
['domain2', '600', '10.0.0.2']
正如您所料,

但是我失败的地方是如果我执行以下操作来打印每个ttl值(索引1)

for item in data:
    print(item[1])

它将打印ttl数字列表,但会出现indexError: list item out of range

'600'
'600'
'200'
Traceback (most recent call last):
 File "<stdin>", line 2, in <module>
IndexError: list index out of range

如果我尝试print(item[2]),就会立即出现错误。

因为我得到了这些索引错误,所以我不知道如何在每个索引中访问正确的信息

1 个答案:

答案 0 :(得分:0)

尝试迭代数据并检查每个项目是否至少具有所需的元素数量。

这样的事情:

export default {
  data() {
    // like this?
    count: this.$store.getters.DONE_COUNT, 
    // ?
    count: this.$store.getters.todos.DONE_COUNT,
    // ?
    count: this.$store.getters.todosModule.DONE_COUNT,
    // ?
    count: ?,
  },
};