Обработка 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)}")