Цикл по данным JSON в Python - PullRequest
       6

Цикл по данным JSON в Python

0 голосов
/ 26 апреля 2018

Я все еще новичок в Python и в данный момент я экспериментирую с GET-запросами и показываю значения только из одной конкретной строки.

import requests
import json

response = requests.get("APIURL")
data = response.text
parsed = json.loads(data)
id = parsed["products"][0]["id"]
print(id)

Как вы можете видеть в приведенном выше коде, у меня еще нет цикла for, я уже пробовал разные вещи, но все еще не работал.С помощью приведенного выше кода я получаю 'id' только для первого продукта, из других продуктов я не получаю результаты.

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

{
    products: [
        {
            id: 66057248,
            createdAt: "2018-02-28T14:55:22+01:00",
            updatedAt: "2018-02-28T14:55:22+01:00",
            isVisible: true,
            visibility: "visible",
            hasMatrix: false
        }
    ]
}

Ответы [ 3 ]

0 голосов
/ 26 апреля 2018

Вы можете сделать:

for product in parsed:
    for index in parsed[product]:
        for element in parsed[product][index]:
            print(element.id)
            print(element.createdAt)
            # ...

В ответе Саймона значение id в цикле будет на самом деле 'id', 'createdAt' и т. Д. Для печати только идентификаторов, поскольку это предполагает, что вам нужноУтвердите, если ключ равен 'id', что делает цикл бесполезным.

Примечание. Не рекомендуется использовать id в качестве имени переменной.Это зарезервированное слово, в этом случае вы можете добавить подчеркивание, получив вместо него id_.

0 голосов
/ 26 апреля 2018

Решение diek - это то, что у меня сработало, отредактировал мой пост из-за этого.Лучший код:

import requests
import json
response = requests.get("")
data =response.text
parsed=json.loads(data)

for product in parsed['products']:
    print(product['id'])

Вывод будет выглядеть следующим образом:

66057248
66057245
66057242
66057239
66057236
66057233
66057230
66057227
66057224
0 голосов
/ 26 апреля 2018

Json использует словарь, чтобы вы могли использовать keys(), чтобы получить все возможные значения, а затем провести их через:

for id in parsed["products"][0].keys():
    print(parsed["products"][0][id])

Понял:

Этоне JSON.Это YAML (потому что вашему коду не хватает " (речевые метки)).Вам нужен парсер YAML для запуска этого.После этого он будет работать правильно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...