【问题标题】:Find the value of at a specific part in JSON with Python使用 Python 查找 JSON 中特定部分的值
【发布时间】:2021-06-08 09:08:57
【问题描述】:

我的代码如下:

myvar0 = jsonfromapi['people']['young']['data'][0][information][isreal]
myvar1 = jsonfromapi['people']['young']['data'][1][information][isreal]
myvar2 = jsonfromapi['people']['young']['data'][2][information][isreal]

print(myvar0)
print(myvar1)
print(myvar2)

输出:

true
false
false

现在 JSON 包含很多“人”。但每次只有一个是真实的。 我的目标是只打印来自真实数据的数据。在我上面的例子中 0。不幸的是,真正的变化。有时是 0 是真的,有时是 1 有时是 2。 我怎样才能只得到真实的,并从这个真实的那里获得更多的数据?例如,当 2 为真时:myvar2 = jsonfromapi['people']['young']['data'][2][information][name] 但没有 1 和 0 的名称。

编辑:每次只有一个人是真实的/真实的。

【问题讨论】:

  • 是什么阻止了您在找到isreal 为真的索引之前循环遍历json,并使用该索引获取其他值?

标签: python arrays json python-3.x


【解决方案1】:

假设您使用 Python,您可能应该遍历 jsonfromapi['people']['young']['data'] 中的列表。

real_person = None
for I, _ in enumerate(jsonfromapi['people']['young']['data']):
    if jsonfromapi['people']['young']['data'][i][information][isreal]:
        real_person = jsonfromapi['people']['young']['data'][i]

最后,您可以检查real_person 是否不是None,以确保至少有一个真人。如果有超过 1 个实数,那么这将返回找到的最后一个。要检索第一个,您应该在if 检查之后添加一个break。如果您想获取所有真实的人,您可以创建一个列表并将所有内容附加到那里。希望这能回答您的问题。

【讨论】:

    【解决方案2】:

    由于只有一个人具有 true 值,您可以简单地这样做:

    real_person = next(data for data in jsonfromapi['people']['young']['data'] if data[information][isreal])
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-11-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-11
      • 1970-01-01
      • 1970-01-01
      • 2017-07-03
      相关资源
      最近更新 更多