Интеграция с Python и рекурсия - PullRequest
0 голосов
/ 06 октября 2018

В настоящее время я изучаю python и, пытаясь найти способ компилировать данные из регистраций IP, наткнулся на вложенные словари / списки.Я нашел способ получить нужные данные, но это кажется чрезмерным, но все мои попытки объединить итерацию провалились.Любая документация по этому вопросу или некоторые указатели будут с благодарностью.

from ipwhois import IPWhois

obj = IPWhois('8.8.8.8')
results = obj.lookup_rdap(depth=1)
for key, val in results.items():
    if isinstance(val, dict):
        if key == 'objects':
            objects = (val)
            for key, val in objects.items():
                if isinstance(val, dict) and key.startswith("ABUSE"):
                    abuse =(val)
                    for key, val in abuse.items():
                        if isinstance(val, dict):
                            contact = (val)
                            for key,val in contact.items():
                                if isinstance(val, list):
                                    if key == 'email':
                                        email = (val)
                                        value=(email[0])
                                        print (value['value'])

1 Ответ

0 голосов
/ 06 октября 2018

Я думаю, что это будет очень ясно, вы должны хорошо взглянуть на формат объекта

from ipwhois import IPWhois

obj = IPWhois('8.8.8.8')
results = obj.lookup_rdap(depth=1)
objects = results['objects']

for key, val in objects.items():
    if not key.startswith('ABUSE'):
        continue
    for ele in val['contact']['email']:
        print(ele['value'])
...