随着应用程序的进展逐步构建一组记录

时间:2012-04-28 01:31:11

标签: python data-structures

我有一个sysadmin类型的CLI应用程序,它从配置文件中读取信息。我无法在下面更改配置文件的格式。

TYPE_A = "value1,value2,value2"
TYPE_A = "value3,value4,value5"
TYPE_B = "valuex,valuey,valuez"

根据TYPE,我需要对每个进行初步处理。完成所有步骤之后,我需要做一些额外的处理,并根据所选择的选项打印状态和预期的操作或执行这些操作。

我想将配置初始解析为dicts列表的dict,并更新所有相关的TYPE_ATYPE_BTYPE_C等的每个实例。关于它的信息。然后打印完整状态或执行操作(如果某些事情的状态不正确,则失败)

我的想法看起来像是:

dict
    TYPE_A_list
        dict_A[0] key:value,key:value,key:value
        dict_A[1] key:value,key:value,key:value
    TYPE_B_list
        dict_A[0] key:value,key:value,key:value
        dict_A[1] key:value,key:value,key:value

我想我想要将配置读入其中,然后在应用程序进展时添加键和值或更新值,并重新处理每个TYPE。

最后我的问题。

  1. 我不确定如何迭代每个dicts列表或添加列表元素并添加或更新key:value对。
  2. 我上面描述的是最好的方法吗?
  3. 我对Python很新,所以我愿意接受任何建议。 FWIW,这将是python 2.6。

    对配置文件行稍作澄清     

        CAR_TYPE = "Ford,Mustang,Blue,2005"
        CAR_TYPE = "Honda,Accord,Green,2009"
        BIKE_TYPE = "Honda,VTX,Black,2006"
        BIKE_TYPE = "Harley,Sportster,Red,2010"
        TIRE_TYPE = "170R15,whitewall"
        
    每种类型都具有相同的顺序和数量的值。

1 个答案:

答案 0 :(得分:0)

无需“记住”有两种不同的TYPE_A作业 - 您可以将它们合并。

TYPE_A = "value1,value2,value2"
TYPE_A = "value3,value4,value5"

将被解析为只有其中一个或两者都取决于您的sysadmin CLI应用程序的实现。

然后数据模型应为:

dict
    TYPE_A: list(value1, value2, value3)
    TYPE_B: list(valuex, valuey, valuez)

这样,您可以非常轻松地遍历dict.items()

for _type, values in dict.items():
    for value in values:
        print "%s: %s" % (_type, value)
        # or whatever you wish to do