[Python] Analyse du XML généré aléatoirement [ElementTree]

Import de bibliothèque

Importez la bibliothèque ElementTree requise pour l'analyse XML. glob récupère le chemin du XML dans le dossier les pandas sont stockés dans un tableau. Exportez des pandas vers csv et enregistrez-les sur MySQL.

from xml.etree import ElementTree
import glob
import pandas as pd

XML Analysez les données XML de cette manière. offset stocke l'heure en secondes. 86400 secondes équivaut à 24 heures

-<Day>
 -<EventCollection>
  -<Event>
   <Offset>0</Offset>
   <Value>70</Value>
  </Event>
  -<Event>
   <Offset>86400</Offset>
   <Value>69</Value>
  </Event>
   -<Event>
   <Offset>172800</Offset>
   <Value>73</Value>
  </Event>
<Day>

Obtenez du XML à partir du dossier et analysez

Obtient et analyse le chemin du XML téléchargé dans le dossier.

xmlfile = glob.glob("C:/Users/user/*") #Stocker le chemin du fichier XML dans le fichier

file = len(xmlfile) #Compter le nombre de fichiers XML

i_file = 0 #Numéro pour spécifier le fichier XML dans l'ordre du haut_0 est le tout premier

for i in range(file):
    XMLFILE = xmlfile[i_file]
    i_file += 1
    tree = ElementTree.parse(XMLFILE)  #Lire le fichier XML
    root = tree.getroot() #Obtenez le contenu de XML

    #Préparer la liste
    Day = [] 
    Night = []

    #Enregistrer tous les numéros dans la liste en utilisant pour
    for e in root.findall('.//Day/EventCollection/Event/Value'):
        Day.append(e.text)
    for e in root.findall('.//Night/EventCollection/Event/Value'):
        Night.append(e.text)

    print(Day)
    [70,69,73]

Enregistrer la liste dans Pandas, puis enregistrer dans csv


#Combinez la liste en une seule
listData = [Day, Night]

#Convertissez listData en DataFrame..T permute les lignes et les colonnes
df = pd.DataFrame(listData).T

#Ajouter un nom de colonne
df.columns = ['Day', 'Night']

#Définissez le chemin de csv et enregistrez pandasDataFram en csv
filename = 'C:/Users/user/csv/AAA.csv'
df.to_csv(filename, index=False)

Enregistrer DataFrame dans MySQL

Enregistrez également la sortie DataFrame par csv dans MySQL.

Importer la bibliothèque

from sqlalchemy import create_engine
url = 'mysql+mysqlconnector://[user]:[pass]@[host]:[port]/sampleDB'
engine = create_engine(url, echo=True)

#df.to_Avec sql'sampleDB_table'Sauvegardez les données stockées dans df
df.to_sql('sampleDB_table', engine, index=False, if_exists='append')

Je l'exécute à partir de FileMaker, mais sous Windows, si vous l'exécutez régulièrement avec un planificateur de tâches, etc., les données seront automatiquement stockées dans la base de données et pourront être utilisées pour une analyse ultérieure. A l'avenir, j'aimerais travailler sur la visualisation de données (outil BI) en PHP, javascript, etc., puis sur l'apprentissage automatique (AI).

Recommended Posts

[Python] Analyse du XML généré aléatoirement [ElementTree]
Comparaison de la vitesse de la perspective XML Python
Comparez les vitesses d'analyse XML avec Python et Go
Analyser XML en Python
[Python] Réécrire les erreurs passées (XML)
Générer du XML (RSS) avec Python
Lire du XML avec un espace de noms spécifié en Python
Copie de capture générée automatiquement [Python]
Traitez le XML avec Python.