[Python] Parsen von zufällig generiertem XML [ElementTree]

Bibliotheksimport

Importieren Sie die für die XML-Analyse erforderliche Bibliothek ElementTree. glob ruft den Pfad des XML im Ordner ab Pandas werden in einem Array gespeichert. Export von Pandas nach CSV und Speichern in MySQL.

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

XML Analysieren Sie XML-Daten wie folgt. Offset speichert die Zeit in Sekunden. 86400 Sekunden sind 24 Stunden

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

Holen Sie sich XML aus dem Ordner und analysieren Sie

Ruft den Pfad des im Ordner heruntergeladenen XML ab und analysiert ihn.

xmlfile = glob.glob("C:/Users/user/*") #Speichern Sie den XML-Dateipfad in einer Datei

file = len(xmlfile) #Zählen Sie die Anzahl der XML-Dateien

i_file = 0 #Nummer, um die XML-Datei in der Reihenfolge von oben anzugeben_0 ist die allererste

for i in range(file):
    XMLFILE = xmlfile[i_file]
    i_file += 1
    tree = ElementTree.parse(XMLFILE)  #XML-Datei lesen
    root = tree.getroot() #Holen Sie sich den Inhalt von XML

    #Liste vorbereiten
    Day = [] 
    Night = []

    #Speichern Sie alle Nummern in der Liste mit for
    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]

Speichern Sie die Liste in Pandas und speichern Sie sie in CSV


#Liste zu einer kombinieren
listData = [Day, Night]

#Konvertieren Sie listData in DataFrame..T tauscht Zeilen und Spalten aus
df = pd.DataFrame(listData).T

#Spaltennamen hinzufügen
df.columns = ['Day', 'Night']

#Legen Sie den Pfad von csv fest und speichern Sie pandasDataFram in csv
filename = 'C:/Users/user/csv/AAA.csv'
df.to_csv(filename, index=False)

Speichern Sie DataFrame in MySQL

Speichern Sie die von csv ausgegebene DataFrame auch in MySQL.

Bibliothek importieren

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

#df.to_Mit sql'sampleDB_table'Speichern Sie die in df gespeicherten Daten
df.to_sql('sampleDB_table', engine, index=False, if_exists='append')

Ich führe dies von FileMaker aus, aber wenn Sie es regelmäßig mit einem Taskplaner usw. in Windows ausführen, werden die Daten automatisch in der Datenbank gespeichert und Sie können sie für spätere Analysen verwenden. In Zukunft möchte ich an der Datenvisualisierung (BI-Tool) mit PHP, Javascript usw. und dann am maschinellen Lernen (AI) arbeiten.

Recommended Posts

[Python] Parsen von zufällig generiertem XML [ElementTree]
Geschwindigkeitsvergleich der Python-XML-Perspektive
Vergleichen Sie die XML-Parsing-Geschwindigkeiten mit Python und Go
Analysieren Sie XML in Python
[Python] Schreiben Sie vergangene Fehler neu (XML)
Generieren Sie XML (RSS) mit Python
Lesen Sie XML mit dem in Python angegebenen Namespace
Automatisch generierte Catch-Kopie [Python]
Verarbeiten Sie Feedly-XML mit Python.