Всем привет,
Возникли проблемы с парсингом json
Name: zzz-mautic-test
Date: 2019-11-21T13:16:43+01:00
Status: Running
State: {'disk': {'root': {'usage': 107171840}}, 'cpu': {'usage': 0}, 'status_code': 103, 'processes': 24, 'memory': {'swap_usage_peak': 0, 'swap_usage': 0, 'usage_peak': 135307264, 'usage': 45236224}, 'pid': 6073, 'status': 'Running', 'network': {'lo': {'host_name': '', 'type': 'loopback', 'hwaddr': '', 'state': 'up', 'mtu': 65536, 'counters': {'packets_received': 2490, 'bytes_sent': 251472, 'bytes_received': 251472, 'packets_sent': 2490}, 'addresses': [{'netmask': '8', 'family': 'inet', 'scope': 'local', 'address': '127.0.0.1'}, {'address': '::1', 'netmask': '128', 'family': 'inet6', 'scope': 'local'}]}, 'eth0': {'state': 'up', 'mtu': 1500, 'counters': {'packets_sent': 4441, 'bytes_sent': 425876, 'bytes_received': 104981554, 'packets_received': 1432121}, 'addresses': [{'address': 'fd87:1cf1:9a65:0:216:3eff:feec:8db', 'netmask': '64', 'family': 'inet6', 'scope': 'global'}, {'address': 'fd97:522f:fa6:0:216:3eff:feec:8db', 'scope': 'global', 'netmask': '64', 'family': 'inet6'}, {'scope': 'global', 'family': 'inet6', 'netmask': '128', 'address': 'fd00:10:17:a0:f8f6:a9fa:ae2:257f'}, {'address': 'fd00:10:17:a0:216:3eff:feec:8db', 'scope': 'global', 'family': 'inet6', 'netmask': '64'}, {'address': 'fe80::216:3eff:feec:8db', 'netmask': '64', 'family': 'inet6', 'scope': 'link'}], 'host_name': '', 'type': 'broadcast', 'hwaddr': '00:16:3e:ec:08:db'}}}
Изначально речь шла о json файле с lxc контейнерами, из которых нужно извлечь имя, дату, статус для каждого.Из State: мне нужно извлечь 'cpu', 'memory' и из 'addresses' нужно извлечь все IP адреса. И вот с этим проблема, не получается из State: извлечь эти данные. Перебробовал уже наверно все но ничего не выходит. Буду очень благодарен за совет! Мой код пока который работает:
import json
with open ('sample-data.json') as f:
sampleData=json.load(f)
for item in sampleData:
print("Name: {}\nDate: {}\nStatus: {}\nState: {}\n".format(item['name'],item['created_at'],item['status'],item['state']))
Возникли проблемы с парсингом json
Name: zzz-mautic-test
Date: 2019-11-21T13:16:43+01:00
Status: Running
State: {'disk': {'root': {'usage': 107171840}}, 'cpu': {'usage': 0}, 'status_code': 103, 'processes': 24, 'memory': {'swap_usage_peak': 0, 'swap_usage': 0, 'usage_peak': 135307264, 'usage': 45236224}, 'pid': 6073, 'status': 'Running', 'network': {'lo': {'host_name': '', 'type': 'loopback', 'hwaddr': '', 'state': 'up', 'mtu': 65536, 'counters': {'packets_received': 2490, 'bytes_sent': 251472, 'bytes_received': 251472, 'packets_sent': 2490}, 'addresses': [{'netmask': '8', 'family': 'inet', 'scope': 'local', 'address': '127.0.0.1'}, {'address': '::1', 'netmask': '128', 'family': 'inet6', 'scope': 'local'}]}, 'eth0': {'state': 'up', 'mtu': 1500, 'counters': {'packets_sent': 4441, 'bytes_sent': 425876, 'bytes_received': 104981554, 'packets_received': 1432121}, 'addresses': [{'address': 'fd87:1cf1:9a65:0:216:3eff:feec:8db', 'netmask': '64', 'family': 'inet6', 'scope': 'global'}, {'address': 'fd97:522f:fa6:0:216:3eff:feec:8db', 'scope': 'global', 'netmask': '64', 'family': 'inet6'}, {'scope': 'global', 'family': 'inet6', 'netmask': '128', 'address': 'fd00:10:17:a0:f8f6:a9fa:ae2:257f'}, {'address': 'fd00:10:17:a0:216:3eff:feec:8db', 'scope': 'global', 'family': 'inet6', 'netmask': '64'}, {'address': 'fe80::216:3eff:feec:8db', 'netmask': '64', 'family': 'inet6', 'scope': 'link'}], 'host_name': '', 'type': 'broadcast', 'hwaddr': '00:16:3e:ec:08:db'}}}
Изначально речь шла о json файле с lxc контейнерами, из которых нужно извлечь имя, дату, статус для каждого.Из State: мне нужно извлечь 'cpu', 'memory' и из 'addresses' нужно извлечь все IP адреса. И вот с этим проблема, не получается из State: извлечь эти данные. Перебробовал уже наверно все но ничего не выходит. Буду очень благодарен за совет! Мой код пока который работает:
import json
with open ('sample-data.json') as f:
sampleData=json.load(f)
for item in sampleData:
print("Name: {}\nDate: {}\nStatus: {}\nState: {}\n".format(item['name'],item['created_at'],item['status'],item['state']))