蟒蛇解决方案?遍历字典,偶尔使用列表作为值



我有一个字典,它通过将某些关键字映射到某些XML元素路径来定义转换XML数据的方案。字典如下所示:

scheme = { 'phone' :  'People/Analyst/Phone', 
           'email' : 'People/Analyst/Email', 
           'address' : 'People/Analyst/Address' 
           ... and so on

我现在必须适应这样一种情况,即某个键可能需要映射到需要连接的两个或多个元素路径。例如:

scheme = { 'phone' :  'People/Analyst/Phone', 
           'email' : 'People/Analyst/Email', 
           'address' : 'People/Analyst/Address' 
           'name' : [ 'People/Analyst/FirstName', 'People/Analyst/FirstName', ' ' ]
           ... and so on

我认为在该计划的字典中将列表作为值是正确的方法。但是,通过这样的字典的惯用方法是什么?作为一个对Python相对较新的人,我想开始用更python的方式做事。现在我有这样的东西:

for k in scheme:
  dataStore[k] = fetchXMLText(scheme[k])

但是,如果方案中偶尔的值是具有两个或多个参数的列表和一个尾随分隔符,那么检查写这个的最惯用方法是什么?我想象像检查 scheme[k] 是否是列表的实例,然后单独浏览该列表。我可以很容易地编写代码,但是有没有比做一个条件isinstance((更优雅的方法呢?

非常感谢

我同意@EmmettJ.Butler的观点。要将其转换为完整的答案:

假设您有:

scheme = { 'phone'  : ['People/Analyst/Phone'], 
           'email'  : ['People/Analyst/Email'], 
           'address': ['People/Analyst/Address'] 
           'name'   : [ 'People/Analyst/FirstName', 'People/Analyst/FirstName', ' ' ]
           ...

然后,您可以按如下方式迭代它:

for k,v in scheme.iteritems():
  dataStore[k] = [fetchXMLText(path) for path in v]

最新更新