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.
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.
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.
#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.
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