Нахождение заданной c строки и печать из собранных данных сайта с использованием python - PullRequest
0 голосов
/ 01 апреля 2020

Здесь я пытаюсь это сделать, у меня есть данные из туннеля ngrok (http://127.0.0.1//api/tunnels), и я хочу напечатать только 'public_url': 'https://.....ngrok.io 'которые я собрал с этого сайта, эти данные выглядят так:

{'tunnels': [{'name': 'command_line', 'uri': '/api/tunnels/command_line', 'public_url': 'https://a28e4c77.ngrok.io', 'proto': 'https', 'config': {'addr': 'http://localhost:80', 'inspect': True}.... Что-то еще

Это часть этих данных. Я использую этот код для сбора этих данных.

import requests 
url = "http://127.0.0.1:4040/api/tunnels"
r = requests.get(url)
data = r.json()

Я также сохранил это в ngrok.txt, но у меня нет абсолютно никакой идеи найти ... Для записи этих данных я использую этот код: -

import requests
url = "http://127.0.0.1:4040/api/tunnels"
r = requests.get(url)
data = r.json()
f = open('ngrok.txt', 'w')
f.write(data)
f.close()

1 Ответ

0 голосов
/ 01 апреля 2020

Вам необходимо преобразовать строку json в объект json. Вы можете сделать это с помощью функции loads() из библиотеки json.

Вот код для вашего примера:

import json
json.loads(data)["tunnels"][0]["public_url"]
  • json.loads(data) преобразует строку в json object
  • ["tunnels"] получает объект, связанный с именем "tunnels"
  • Полученный объект представляет собой список, в действительности вам необходимо получить первый элемент с [0]
  • Наконец вы получите "public_url"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...