Python: Список в Dict? - PullRequest
       1

Python: Список в Dict?

0 голосов
/ 11 июля 2020

Из этого примера, как мне получить IP-адрес из ответа?

import requests

URL = "https://security.cloudflare-dns.com/dns-query?name=test.com"

session = requests.session()
r = session.get(URL, headers={"Accept": "application/dns-json"})
r = r.json()

print("Type:", type(r))
print("Len:", len(r))
print("Content:", r)

IP = r['Answer'][-1]
print("IP:", IP)  

Вывод:

Type: <class 'dict'>
Len: 8
Content: {'Status': 0, 'TC': False, 'RD': True, 'RA': True, 'AD': False, 'CD': False, 'Question': [{'name': 'test.com', 'type': 1}], 'Answer': [{'name': 'test.com', 'type': 1, 'TTL': 3261, 'data': '69.172.200.235'}]}
IP: {'name': 'test.com', 'type': 1, 'TTL': 3261, 'data': '69.172.200.235'}

Ответы [ 2 ]

1 голос
/ 11 июля 2020

Ответ:

r['Answer'][0]['data']

Но я хотел бы дать вам совет, как вы можете это найти.

Мне нравится использовать модуль кода для запуска интерактивной консоли внутри моего скрипта:

import requests
import code

URL = "https://security.cloudflare-dns.com/dns-query?name=test.com"

session = requests.session()
r = session.get(URL, headers={"Accept": "application/dns-json"})
r = r.json()

print("Type:", type(r))
print("Len:", len(r))
print("Content:", r)

code.interact(banner="after get request", locals=locals()) #interactive console is created here

IP = r['Answer'][-1]
print("IP:", IP)  

Оттуда вы можете играть с локальными переменными и тестировать, пока не найдете то, что вам нужно.

Надеюсь, это поможет.

1 голос
/ 11 июля 2020

Вот так?:

IP = r['Answer'][-1]['data']
print("IP:", IP)

Вывод:

IP: 69.172.200.235
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...