Получение значения XML из атрибута dispatchState с помощью python и запроса - PullRequest
0 голосов
/ 30 мая 2019

Я делаю запрос на занятие работой, используя:

 response = requests.post('https://xxxx.net:8089/services/search/jobs/' + job_id, auth=(splunk_user, splunk_pass), verify=False)

Теперь я смотрю на вывод, используя print(response.text). Я хочу, чтобы можно было распечатать только значение <s:key name="dispatchState">DONE</s:key> и посмотреть, является ли оно "ГОТОВО" или каким-либо другим значением.

1 Ответ

0 голосов
/ 30 мая 2019

Раствор 1

Поскольку выходной формат - xml, вы можете проанализировать xml с помощью модуля lxml Python, как показано ниже.

import lxml.etree as et
root = et.fromstring(response.text)
done_state = root.xpath("//s:key[@name='dispatchState']/text()", root.nsmap)[0]

Вы можете установить lxml используя pip

pip install lxml

Дальнейшую документацию и руководства можно найти здесь .

Решение 2

Если структура постоянна, вы можете использовать простое регулярное выражение для получения необходимой информации:

import re
match = re.search('<s:key name\="dispatchState">(.*?)</s:key>', response.text)
result = match.group(1)

Больше информации о регулярных выражениях вы можете получить здесь .

...