2017-03-21 13 views
0
urls = ['http://google.com', 'http://yandex.com'] 

jobs = { 
    "jobs": [{ 
     "id": "4535765", 
     "urls": [{ 
      "url": "http://google.com", 
      "status": "OK" 
     }, { 
      "url": "http://yandex.com", 
      "status": "OK" 
     }] 
    }, { 
     "id": "4535756", 
     "urls": [{ 
      "url": "http://example.com", 
      "status": "OK" 
     }, { 
      "url": "http://google.it", 
      "status": "OK" 
     }] 
    }] 
} 

私はURLにすべてのURLを持つジョブIDと一致する必要があります。Python - 複数の条件を持つjsonオブジェクトに一致させる

job_id = [j['id'] for j in jobs['jobs'] if all(u in jobs['urls'] for u in urls)] 

もちろん、うまくいかない、URLのすべてのURLとやりとりする方法を考えることはできません。

+0

これはJSONから独立しています。あなたはちょうどPython 'dict'を持っています。 – chepner

答えて

2

あなたは実際に閉じると、ジョブ内のurlオブジェクトから実際にurlという値を取得していませんでした。試してみてください:

job_ids = [j['id'] for j in jobs['jobs'] if all(u['url'] in urls for u in j['urls'])] 
関連する問題