实际上有两个问题:如果我有一个字典(最初来自解析json消息)中有一个可选数组:
dict_with = {'name':'bob','city':'san francisco','kids': {'name': 'alice'} }
dict_without = {'name':'bob','city':'san francisco' }
我通常会有这样的代码:
^{pr2}$我的第一个问题是,有没有python方法来组合if保护和for循环?在
第二个问题是我的直觉告诉我,对于原始json消息,最好的设计是始终指定kids元素,只需使用一个空字典:
dict_better = {'name':'bob','city':'san francisco','kids': {} }
我找不到任何能证明这一点的设计方法。json消息是来自支持json和xml表示的web服务的状态消息。因为他们是从xml开始的,所以“kids”元素是可选的,这迫使上面的构造在遍历数组之前检查元素是否存在。我想知道是否最好的设计明智地说元素是必需的(如果没有元素,就用空数组)。在
空序列不会导致迭代。在
[x for x in dict_with.get('kids')]
,可以将此filter, map - a functional programming tools
用于列表理解。在key-error
,使用dict_with.get('xyz',[])
返回一个空列表。在相关问题 更多 >
编程相关推荐