Анализ значения тегов ‹cap:event›, ‹cap:urgency› с помощью feedparser в python из фида Atom/xml

Я использую feedparser для анализа данных из файла фида Atom/xml. Ссылка на файл:

https://alerts.weather.gov/cap/oh.php?x= 0

Это канал, выпущенный Национальной метеорологической службой для предоставления информации о погоде. Этот фид использует обмен сообщениями с предупреждениями Common Alert Protocol (CAP). Я пытаюсь разобрать следующее:

<summary>...AIR QUALITY ADVISORY IN EFFECT UNTIL MIDNIGHT EDT TONIGHT... The Miami Valley Regional Planning Commission and the Regional Air Pollution Control Agency have issued an Air Pollution and Air Quality Advisory for Montgomery, Miami, Greene, Clark, Preble and Darke counties in the Miami Valley Region, until midnight EDT tonight.</summary>
<cap:event>Air Quality Alert</cap:event>
<cap:effective>2020-06-08T15:15:00-04:00</cap:effective>
<cap:expires>2020-06-09T19:30:00-04:00</cap:expires>
<cap:status>Actual</cap:status>
<cap:msgType>Alert</cap:msgType>
<cap:category>Met</cap:category>
<cap:urgency>Unknown</cap:urgency>
<cap:severity>Unknown</cap:severity>
<cap:certainty>Unknown</cap:certainty>
<cap:areaDesc>Clark; Darke; Greene; Miami; Montgomery; Preble</cap:areaDesc>

Я могу разобрать сводку, но я не могу разобрать теги, такие как или, например, с помощью feedparser. Это то, что мне нужно для проекта Raspberry Pi. Я пробовал много разных подходов, таких как:

d = feedparser.parse('http://alerts.weather.gov/cap/ms.php?x=0')
print (d.entries[0].['cap_event'])
print (d.entries[0]['cap:event'])

Когда я пытаюсь распечатать (d.entries[0].['cap_event']), я получаю следующую ошибку:

%Run feedparser2.py File "/home/n8mdp/MyPythonApps/feedparser2.py", строка 13 print (d['entries'][0].['cap:event']) ^ SyntaxError: неверный синтаксис

Если я использую print (d.entries[0]['cap_event'], я получаю следующую ошибку: Traceback (последний последний вызов): File "/home/n8mdp/MyPythonApps/feedparser2.py", строка 13, в печати (d['entries'][0]['cap:event']) Файл "/home/n8mdp/.thonny/Python36/lib/python3.6/site-packages/feedparser.py", строка 356, в < strong>getitem return dict.getitem(self, key) KeyError: 'cap:event'

Using Thonny 2.1.16 in Ubuntu 18.04.4 LTS. Feedparser is installed.

Есть ли у кого-нибудь хорошее предложение о том, как я могу анализировать эти теги с помощью feedparser в python?

Заранее спасибо!


person HamOp_N8MDP    schedule 08.06.2020    source источник


Ответы (1)


После более глубокого исследования я определил, что сработало следующее:

print (alertFeed['entries'][nws_entry_id]['id'])
print (alertFeed['entries'][nws_entry_id]['summary'])
print (alertFeed['entries'][nws_entry_id]['cap_event'])
print (alertFeed['entries'][nws_entry_id]['cap_urgency'])
print (alertFeed['entries'][nws_entry_id]['cap_areadesc'])

nws_entry_id — индекс количества записей в ленте. Пришлось на самом деле просмотреть фид, возвращенный фидпарсером, чтобы определить это. Теперь код работает, как и ожидалось.

person HamOp_N8MDP    schedule 09.06.2020