2015-10-16 176 views
1
[db_finding] 
cluster_name : db_finding 
connect_timeout_ms : 900 

[[email protected]] 
ip : 10.1.7.71 
port : 6500 

[[email protected]] 
ip : 10.1.7.65 
port : 6500 

解析器文件(INI)包括 「AT」 我可以使用:如何通過蟒蛇

val = cf.get("db_finding",'cluster_name') 

它的工作。

但我怎麼能得到「AT」主機?

回答

2

有趣的問題..帶了我一下。我喜歡它:D那裏的解決方案不是很健壯。

import ConfigParser 

class MultiOrderedDict(dict): 
    def __setitem__(self, key, value): 
     if key in self and isinstance(value, list): 
      self[key].append(value[0]) 
      return 

     super(MultiOrderedDict, self).__setitem__(key, value) 

config = ConfigParser.ConfigParser(dict_type=MultiOrderedDict) 
config.read(['cluster.conf']) 
print config.items('[email protected]') 
print config.get('[email protected]', 'ip').split('\n') 
+0

謝謝!如果ini有兩個部分「[]」,則每個部分都有兩個「。@主機」。如何對應? – wuent

+0

咦?再舉一個例子,我會對它進行刺探。 –