2017-09-08 5 views
-2

私はIdents[0].IsVerifiedを使ってこれを行いますが、インデックス番号は与えたくありません。どのブロックがPrimaryEmailまたはMobileと関連付けられているかを確認する必要があります。これは私のJSONです。Pythonでインデックス番号を渡さずにJSON配列を取得するには?

"Idents": [ 
    { 
    "PrimaryEmail": "[email protected]", 
    "IsVerified": false, 
    "IdentId": 1, 
    "EmailVerificationCode": 302284 
    }, 
    { 
    "Mobile": "1234567890", 
    "IsVerified": true, 
    "IdentId": 2, 
    "MobileVerificationCode": 302284 
    }, 
    { 
    "CardNumber": 0, 
    "IsVerified": false, 
    "IdentId": 4 
    } 
] 
+0

_exactly_何を期待していますか?例を挙げる。 – DyZ

+0

私はPrimaryEmailを持っており、どのブロックにそれが含まれているかをチェックしたいと思います。 –

+0

ループまたはリストの理解を使用します。 – Barmar

答えて

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'}] 
関連する問題