Analysieren Sie XML in Python

Für die persönliche Arbeit.

Sie können die Antwort in XML mit der API des Ministeriums für innere Angelegenheiten und Kommunikation erhalten. Hier finden Sie eine Zusammenfassung zum Parsen dieses XML. Ich habe vor, es für die Arbeit zu nutzen, wenn ich zu Beginn der Woche Freizeit habe. Der Beispielcode der API des Ministeriums für innere Angelegenheiten und Kommunikation beschreibt, wie Sie soziale und demografische Statistiken erhalten. Wenn Sie darauf klicken, wird das folgende XML zurückgegeben.

<?xml version="1.0" encoding="UTF-8" standalone="true"?>
<GET_STATS_DATA xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://api.e-stat.go.jp/rest/2.0/schema/GetStatsData.xsd">
<RESULT>
<STATUS>0</STATUS>
<ERROR_MSG>Es endete normal.</ERROR_MSG>
<DATE>2016-09-04T21:28:09.920+09:00</DATE>
</RESULT>
<PARAMETER>
<LANG>J</LANG>
<STATS_DATA_ID>C0020050213000</STATS_DATA_ID>
<NARROWING_COND>
<CODE_CAT01_SELECT>#A03503</CODE_CAT01_SELECT>
</NARROWING_COND>
<DATA_FORMAT>X</DATA_FORMAT>
Unten weggelassen

Es ist so, als würde man dies mit dem urllib-Modul abrufen und mit dem xml-Modul auf das Element zugreifen. Wenn es sich um eine alte API handelt, ist möglicherweise keine JSON-Ausgabe vorhanden.

Aus API importieren

Dies wird an verschiedenen Stellen geschrieben, und wenn Sie sich das offizielle Dokument ansehen, wird es auf verschiedene Arten geschrieben. Die Endpunkt-URL der API des Ministeriums für innere Angelegenheiten und Kommunikation wird verwendet. Melden Sie sich jedoch an, um die Anwendungs-ID zu erhalten.

import urllib

url = 'http://api.e-stat.go.jp/rest/2.0/app/XXXXXXXXXXXX'
req = urllib.request.Request(url)

with urllib.request.urlopen(req) as response:
    XmlData = response.read()

Dadurch werden die XML-Textdaten in XmlData gespeichert.

XML-Analyse

Importieren Sie das XML-Modul und starten Sie die Analyse. Dies ist auch in der offiziellen Dokumentation aufgeführt.

import xml.etree.ElementTree as ET

root = ET.fromstring(XmlData)

nur das.

Schauen Sie sich den Inhalt des Elements an

#Tags und Inhalte der obersten Ebene
print(root.tag,root.attrib)

#Untergeordnete Hierarchie-Tags und -Inhalte
for child in root:
    print(child.tag, child.attrib)

Wenn Sie Enkelelemente einschließen möchten, ist es besser, eine Liste oder ein Wörterbuch zu erstellen und diese zu schreiben.

Zugriff auf Elemente

Es ist wie der Zugriff auf eine Liste.

print(root[0][1].text)

Ich denke, ich kann tun, was ich vorerst tun möchte.

Recommended Posts

Analysieren Sie XML in Python
Analysieren Sie den Benutzeragenten in Python
Lesen Sie XML mit dem in Python angegebenen Namespace
Quadtree in Python --2
Python in der Optimierung
CURL in Python
Metaprogrammierung mit Python
Python 3.3 mit Anaconda
Geokodierung in Python
SendKeys in Python
Metaanalyse in Python
Unittest in Python
Epoche in Python
Zwietracht in Python
Deutsch in Python
DCI in Python
Quicksort in Python
nCr in Python
N-Gramm in Python
Programmieren mit Python
Plink in Python
Konstante in Python
FizzBuzz in Python
SQLite in Python
Schritt AIC in Python
LINE-Bot [0] in Python
CSV in Python
Reverse Assembler mit Python
Reflexion in Python
Konstante in Python
nCr in Python.
Format in Python
Scons in Python 3
Puyopuyo in Python
Python in Virtualenv
PPAP in Python
Quad-Tree in Python
Reflexion in Python
Chemie mit Python
Hashbar in Python
DirectLiNGAM in Python
LiNGAM in Python
In Python reduzieren
In Python flach drücken
Holen Sie sich mit Python die Niederschlagswahrscheinlichkeit aus XML
Bearbeiten Sie XML mit Namespaces in Python (Element Tree)
Sortierte Liste in Python
Täglicher AtCoder # 36 mit Python
Clustertext in Python
AtCoder # 2 jeden Tag mit Python
Täglicher AtCoder # 32 in Python
Täglicher AtCoder # 6 in Python
Täglicher AtCoder # 18 in Python
Bearbeiten Sie Schriftarten in Python
Singleton-Muster in Python
Dateioperationen in Python
Lesen Sie DXF mit Python
Täglicher AtCoder # 53 in Python