Как сформировать список из выдачи python

user_json = json.loads(r.text)

for i in user_json['result']:
    try:
        list =[]
        arr2 = i['owner_products'][0]['id'], i['ip'].split(';')
        list.append(arr2)
        print(arr2)
    except:
        pass

Исходный вид:

{'result': [{'serial_number': '2112ALSN0J8000014', 'location_key': None, 'type': 'TYPE_HARDWARE_SERVER', 'os': 'Linux', 'owner_products': [{'name': 'ЭЧ', 'id': 11}], 'own': True, 'i_id': 1406824, 'dat_name': '', 'id': 553, 'ip': '10.0.0.56;172.15.217.56', 'hostname': 'test', 'model': 'Huawei'}

Вывод:

(11, ['10.0.0.56', '172.15.217.56'])

А мне надо:

[(11, '172.15.217.56')]
[(11, '10.0.0.56')]

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

Автор решения: CrazyElf

Странное вы что-то хотите, зачем вам кортежи внутри списков, например? Ну да ладно, пусть будет:

for i in user_json['result']:
    try:
        lst =[]
        id_ = i['owner_products'][0]['id']
        for ip in i['ip'].split(';'):
            arr2 = [(id_, ip)]
            lst.append(arr2)
            print(arr2)
    except:
        pass

Вывод:

[(11, '10.0.0.56')]
[(11, '172.15.217.56')]

Содержимое lst в итоге:

[[(11, '10.0.0.56')], [(11, '172.15.217.56')]]
→ Ссылка