我有一个系统管理员类型的 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
我想我想将配置读入其中,然后在应用程序运行和重新处理每个 TYPE 时添加键和值或更新值。
最后是我的问题。
- 我不确定如何遍历每个字典列表或添加列表元素以及添加或更新键值对。
- 我上面描述的是解决这个问题的最佳方法吗?
我是 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"每种类型将具有相同的顺序和值的数量。
最佳答案
无需“记住”有两种不同的 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
关于python - 随着应用程序的进展逐步构建一组记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10359815/