Обработка JSON в Python

Есть JSON вот такого вида. 15 - ID, он не статичен и всегда изменяется, какой-то определенной закономерности в этом нет. Нужно получить строки user, pass, port, ip и сделать это универсально.

{
 "status": "yes",
 "user_id": "1",
 "balance": 42.5,
 "currency": "RUB",
 "count": 1,
 "price": 6.3,
 "price_single": 0.9,
 "period": 7,
 "country": "ru",
 "list": {
   "15": {
      "id": "15",
      "ip": "2a00:1838:32:19f:45fb:2640::330",
      "host": "185.22.134.250",
      "port": "7330",
      "user": "5svBNZ",
      "pass": "iagn2d",
      "type": "http",
      "date": "2016-06-19 16:32:39",
      "date_end": "2016-07-12 11:50:41",
      "unixtime": 1466379159,
      "unixtime_end": 1468349441,
      "active": "1"
   }
 }
}

Ответы (1 шт):

Автор решения: Александр

здесь код будет печатать все id, которые он найдёт

import json

text = '''{
 "status": "yes",
 "user_id": "1",
 "balance": 42.5,
 "currency": "RUB",
 "count": 1,
 "price": 6.3,
 "price_single": 0.9,
 "period": 7,
 "country": "ru",
 "list": {
   "15": {
      "id": "15",
      "ip": "2a00:1838:32:19f:45fb:2640::330",
      "host": "185.22.134.250",
      "port": "7330",
      "user": "5svBNZ",
      "pass": "iagn2d",
      "type": "http",
      "date": "2016-06-19 16:32:39",
      "date_end": "2016-07-12 11:50:41",
      "unixtime": 1466379159,
      "unixtime_end": 1468349441,
      "active": "1"
   }
 }
}'''

data = json.loads(text)['list']

for ID in data:
    data_id = data[ID]
    my_attrs = [
        data_id.get(attr) for attr in ["user", "pass", "port", "ip"]
    ]

    print(f"{ID=}: {'  '.join(my_attrs)}")
→ Ссылка