Python:组合“if'x”(在dict中)和“for i in dict['x']”

2024-05-15 05:53:16 发布

您现在位置:Python中文网/ 问答频道 /正文

实际上有两个问题:如果我有一个字典(最初来自解析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”元素是可选的,这迫使上面的构造在遍历数组之前检查元素是否存在。我想知道是否最好的设计明智地说元素是必需的(如果没有元素,就用空数组)。在


Tags: 方法namejson消息元素city字典with
3条回答

空序列不会导致迭代。在

for k in D.get('kids', ()):

[x for x in dict_with.get('kids')],可以将此filter, map - a functional programming tools用于列表理解。在

  • 列表理解更简洁。在
  • 运行速度比手动for循环语句快得多。在
  • 为了避免key-error,使用dict_with.get('xyz',[])返回一个空列表。在
for x in d.get("kids", ()):
    print "kid:", x

相关问题 更多 >

    热门问题