内联try excep

2024-06-23 03:17:15 发布

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

我有一个JSON,其中有多个{},它们都有'admissionCountTotal'元素,只有一个除外。没有这个元素的元素可以是任何人,但是为了这个例子,让我们假设我们知道它是哪一个。在

{
    "movie":{
        "boxOffice":[
            {"admissionCountTotal":123},
            {"admissionCountTotal":456},
            {"admissionCountTotal":1234},
            {"admissionCountTotal":1253},
            {"admissionCount":"this is not admissionCountTotal"},
            {"admissionCountTotal":61723},
            {"admissionCountTotal":1423},
            {"admissionCountTotal":12323},
            {"admissionCountTotal":5123}
        ]
    }
}

我想检索在这些admissionCountTotal中可以找到的最大值。这是可行的,所以我基本上找到了方法:

^{pr2}$

但是,这并不能:

max(data['movie']['boxOffice'][sem]['admissionCountTotal'] for sem in xrange(0,56))

有两个原因:

  • 尝试获取data['movie']['boxOffice'][4]['admissionCountTotal']会出错。在
  • 尝试获取data['movie']['boxOffice'][9]['admissionCountTotal']且大于9会导致错误,因为在该值之上没有任何元素。但是,我不知道有多少个元素(除了不能超过56个元素)

因此,我希望有某种类型的内联try结构,我怀疑它可以解决我的两个问题。有可能吗?如果没有,我还能怎样解决我的问题?在


Tags: 方法json元素dataisnotmoviethis
1条回答
网友
1楼 · 发布于 2024-06-23 03:17:15

我不认为你需要try/except;你只需要一个遍历boxoffice元素的循环,而不是一个整数范围。在

max(item['admissionCountTotal'] for item in data['movie']['boxOffice'])

由于这些项目中至少有一项没有总计,因此可以使用默认值get

^{pr2}$

相关问题 更多 >

    热门问题