2

我有一个系统管理员类型的 CLI 应用程序,它从配置文件中读取信息。我无法更改以下配置文件的格式。

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

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

我想将配置初始解析为字典列表的字典,并使用所有相关信息更新 , , 等的TYPE_A每个TYPE_B实例。TYPE_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

我想我想将配置读入其中,然后随着应用程序的进展添加键和值或更新值并重新处理每个类型。

最后我的问题。

  1. 我不确定如何迭代每个字典列表或添加列表元素并添加或更新键:值对。
  2. 我上面描述的是否是解决此问题的最佳方法?

我对 Python 还很陌生,所以我愿意接受任何建议。FWIW,这将是 python 2.6。

关于配置文件行的一点说明

    CAR_TYPE = "福特,野马,蓝色,2005"
    CAR_TYPE = "本田,雅阁,绿色,2009"
    BIKE_TYPE = "本田,VTX,黑色,2006"
    BIKE_TYPE = "Harley,Sportster,Red,2010"
    TIRE_TYPE = "170R15,白墙"
    
每种类型将具有相同的顺序和数量的值。

4

1 回答 1

0

无需“记住”有两个不同的TYPE_A任务 - 您可以将它们组合起来。

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

将被解析为其中之一或两者都取决于您的系统管理员 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
于 2012-04-28T01:58:01.447 回答