python - если есть, то распечатай, иначе не распечатывай - PullRequest
0 голосов
/ 28 августа 2018

Так что я немного играю с json, и я застрял в коде, где я распечатываю items['ids']

, что дает мне значение:

[
  {
    'id': '11891',
    'availability': 'IsNotThere',
  },
  {
    'id': '11892',
    'availability': 'IsThere',
  },
  {
    'id': '11893',
    'availability': 'IsThere',
  },
  {
    'id': '11894',
    'availability': 'IsNotThere',
  },
  {
    'id': '11895',
    'availability': 'IsNotThere',
  },
  {
    'id': '11896',
    'availability': 'IsNotThere',
  },
  {
    'id': '11897',
    'availability': 'IsNotThere',
  },
  {
    'id': '11898',
    'availability': 'IsNotThere',
  },
  {
    'id': '11899',
    'availability': 'IsNotThere',
  },
  {
    'id': '11900',
    'availability': 'IsNotThere',
  }
]

И я пытался выяснить, должен ли это быть цикл for, включающий эту проблему. Однако я никуда не пришел и вот я здесь. Теперь я застрял и удивляюсь, как я могу распечатать удостоверение личности, где в противном случае доступность "IsThere" просто пропустить?

EDIT:

id_list = [i for i in products['skus'] if i.get("id")]

for i in id_list:
   if i['availability'] == 'IsThere':
       print(i)

Ответы [ 2 ]

0 голосов
/ 28 августа 2018

Если у вас есть объект JSON, вы можете просто зациклить его и проверить поля, используя имя поля в качестве индекса:

for line in json:
    if(line['availability'] == "IsThere"):
       # if available -> print the id
       print(line['id'))
0 голосов
/ 28 августа 2018

Если вам просто небезразличен id, и вы можете выбрать его по имени id. и вы можете сделать это как:

id_list = [i for i in sample if i.get("availability") == 'IsThere']

Чтобы распечатать, просто зациклите и напечатайте.

for i in id_list:
    print(i)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...