Analyser XML en Python

Pour un travail personnel.

Vous pouvez obtenir la réponse au format XML avec l'API du ministère des Affaires intérieures et des Communications. Voici un résumé de la façon d'analyser ce XML. Je prévois de l'utiliser pour le travail lorsque j'ai du temps libre en début de semaine. L'exemple de code de l'API du ministère de l'Intérieur et des Communications décrit comment obtenir des statistiques sociales et démographiques, et lorsque vous cliquez dessus, le code XML suivant sera renvoyé.

<?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>Cela s'est terminé normalement.</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>
Omis ci-dessous

C'est comme obtenir cela en utilisant le module urllib et en accédant à l'élément en utilisant le module xml. S'il s'agit d'une ancienne API, il se peut qu'il n'y ait pas de sortie JSON.

Importer depuis l'API

Ceci est écrit à divers endroits, et si vous regardez le document officiel, il est écrit de différentes manières. L'URL du point final de l'API du ministère de l'Intérieur et des Communications est utilisée, mais veuillez vous connecter pour obtenir l'ID de l'application.

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()

Cela stockera les données de texte XML dans XmlData.

Analyse XML

Importez le module XML et lancez l'analyse. Ceci est également détaillé dans la documentation officielle.

import xml.etree.ElementTree as ET

root = ET.fromstring(XmlData)

seulement ça.

Jetez un œil au contenu de l'élément

#Balises et contenus de premier niveau
print(root.tag,root.attrib)

#Balises et contenu de la hiérarchie enfant
for child in root:
    print(child.tag, child.attrib)

Si vous souhaitez inclure des éléments petits-enfants, il serait préférable de créer une liste ou un dictionnaire et de l'écrire.

Accès aux éléments

C'est comme accéder à une liste.

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

Je pense que je peux faire ce que je veux faire pour le moment.

Recommended Posts

Analyser XML en Python
Analyser l'agent utilisateur en Python
Lire du XML avec un espace de noms spécifié en Python
Quadtree en Python --2
Python en optimisation
CURL en Python
Métaprogrammation avec Python
Python 3.3 avec Anaconda
Géocodage en python
SendKeys en Python
Méta-analyse en Python
Unittest en Python
Époque en Python
Discord en Python
Allemand en Python
DCI en Python
tri rapide en python
nCr en python
N-Gram en Python
Programmation avec Python
Plink en Python
Constante en Python
FizzBuzz en Python
Sqlite en Python
Étape AIC en Python
LINE-Bot [0] en Python
CSV en Python
Assemblage inversé avec Python
Réflexion en Python
Constante en Python
nCr en Python.
format en python
Scons en Python 3
Puyopuyo en python
python dans virtualenv
PPAP en Python
Quad-tree en Python
Réflexion en Python
Chimie avec Python
Hashable en Python
DirectLiNGAM en Python
LiNGAM en Python
Aplatir en Python
Aplatir en python
Obtenez la probabilité de précipitation de XML avec Python
Manipuler XML avec des espaces de noms en Python (arbre des éléments)
Liste triée en Python
AtCoder # 36 quotidien avec Python
Texte de cluster en Python
AtCoder # 2 tous les jours avec Python
Daily AtCoder # 32 en Python
Daily AtCoder # 6 en Python
Daily AtCoder # 18 en Python
Modifier les polices en Python
Motif singleton en Python
Opérations sur les fichiers en Python
Lire DXF avec python
Daily AtCoder # 53 en Python