如何在不传递Python中的索引号的情况下获取值JSON数组?

时间:2017-09-08 04:43:48

标签: python arrays json

我是使用Idents[0].IsVerified执行此操作但我不想提供索引编号。我需要检查哪个块与PrimaryEmailMobile相关联。这是我的JSON:

"Idents": [
  {
    "PrimaryEmail": "abc@gmail.com",
    "IsVerified": false,
    "IdentId": 1,
    "EmailVerificationCode": 302284
  },
  {
    "Mobile": "1234567890",
    "IsVerified": true,
    "IdentId": 2,
    "MobileVerificationCode": 302284
  },
  {
    "CardNumber": 0,
    "IsVerified": false,
    "IdentId": 4
  }
]

1 个答案:

答案 0 :(得分:1)

Python确实直接支持JSON。首先,您必须将JSON转换为列表和字典(模块json具有必要的工具)。假设您已完成转换并且JSON数组位于列表Idents中,请查看列表并检查哪些列表项具有键"Mobile"

[block for block in Idents if "Mobile" in block]
#[{'MobileVerificationCode': 302284, 'IdentId': 2, 'IsVerified': True, 
#  'Mobile': '1234567890'}]

通过过滤可以获得相同的结果:

list(filter(lambda block: "Mobile" in block, Idents))
#[{'MobileVerificationCode': 302284, 'IdentId': 2, 'IsVerified': True, 
#  'Mobile': '1234567890'}]