Was ist XML? XML bedeutet Extensible Markup Language, die zum Speichern strukturierter Daten und zum Gruppieren beliebiger Elemente erforderlich ist. In der XML-Markup-Sprache können Sie Tags mit beliebigen Namen erstellen. Die beliebtesten Beispiele für XML – Sitemaps und RSS-Feeds.
Beispiel einer XML-Datei:
<breakfast_menu> <food> <name>Belgian Waffles</name> <price>.95</price> <description>Two of our famous Belgian Waffles with plenty of real maple syrup</description> <calories>650</calories> </food> <food> <name>Strawberry Belgian Waffles</name> <price>.95</price> <description>Light Belgian waffles covered with strawberries and whipped cream</description> <calories>900</calories> </food> <food> <name>Berry-Berry Belgian Waffles</name> <price>.95</price> <description>Light Belgian waffles covered with an assortment of fresh berries and whipped cream</description> <calories>900</calories> </food> <food> <name>French Toast</name> <price>.50</price> <description>Thick slices made from our homemade sourdough bread</description> <calories>600</calories> </food> <food> <name>Homestyle Breakfast</name> <price>.95</price> <description>Two eggs, bacon or sausage, toast, and our ever-popular hash browns</description> <calories>950</calories> </food> </breakfast_menu>
In diesem Beispiel enthält die Datei das globale Tag „breakfast_menu“, das Lebensmittelkategorien umfasst, und jede Lebensmittelkategorie enthält Name, Preis, Beschreibung und Kalorien-Tag.
Jetzt lernen wir, wie man mit der XML- und Python-Requests-Bibliothek arbeitet. Zuerst müssen wir unser Arbeitsumfeld vorbereiten.
Um ein neues Projekt und eine virtuelle Umgebung zu erstellen, installieren Sie das Paket python3-virtualenv. Es sind Trennungsanforderungen für jedes Projekt erforderlich. Installation in Debian/Ubuntu:
sudo apt install python3 python3-virtualenv -y
Projektordner erstellen:
mkdir my_project cd my_project
Erstellen Sie eine virtuelle Python-Umgebung mit der Umgebung mit dem Namen Ordner:
python3 -m venv env
Virtuelle Umgebung aktivieren:
source env/bin/activate
PIP-Abhängigkeiten installieren:
pip3 install requests
Lassen Sie uns mit dem Schreiben von Code beginnen.
Erstellen Sie die Datei main.py und fügen Sie unten den Code ein:
import requests import xml.etree.ElementTree as ET request = requests.get('https://www.w3schools.com/xml/simple.xml') root = ET.fromstring(request.content) for item in root.iter('*'): print(item.tag)
Dieses Code-Snippet hilft uns, alle inneren Tags zu finden.
Die Ausgabe dieses Codes:
(env) user@localhost:~/my_project$ python3 main.py breakfast_menu food name price description calories food name price description calories food name price description calories food name price description calories food name price description calories
Jetzt schreiben wir Code zum Abrufen von Werten aus inneren Elementen. Öffnen Sie die Datei main.py und ersetzen Sie den vorherigen Code durch diesen:
import requests import xml.etree.ElementTree as ET request = requests.get('https://www.w3schools.com/xml/simple.xml') root = ET.fromstring(request.content) for item in root.iterfind('food'): print(item.findtext('name')) print(item.findtext('price')) print(item.findtext('description')) print(item.findtext('calories'))
Wir haben das nächste Ergebnis erhalten:
(env) user@localhost:~/my_project$ python3 main.py Belgian Waffles .95 Two of our famous Belgian Waffles with plenty of real maple syrup 650 Strawberry Belgian Waffles .95 Light Belgian waffles covered with strawberries and whipped cream 900 Berry-Berry Belgian Waffles .95 Light Belgian waffles covered with an assortment of fresh berries and whipped cream 900 French Toast .50 Thick slices made from our homemade sourdough bread 600 Homestyle Breakfast .95 Two eggs, bacon or sausage, toast, and our ever-popular hash browns 950
Im letzten Schritt verschönern wir die Ausgabedaten, um sie leichter lesbar zu machen:
import requests import xml.etree.ElementTree as ET request = requests.get('https://www.w3schools.com/xml/simple.xml') root = ET.fromstring(request.content) for item in root.iterfind('food'): print('Name: {}. Price: {}. Description: {}. Calories: {}'.format(item.findtext('name'), item.findtext('price'), item.findtext('description'), item.findtext('calories')))
Hier Ausgabe:
(env) user@localhost:~/my_project$ python3 main.py Name: Belgian Waffles. Price: .95. Description: Two of our famous Belgian Waffles with plenty of real maple syrup. Calories: 650 Name: Strawberry Belgian Waffles. Price: .95. Description: Light Belgian waffles covered with strawberries and whipped cream. Calories: 900 Name: Berry-Berry Belgian Waffles. Price: .95. Description: Light Belgian waffles covered with an assortment of fresh berries and whipped cream. Calories: 900 Name: French Toast. Price: .50. Description: Thick slices made from our homemade sourdough bread. Calories: 600 Name: Homestyle Breakfast. Price: .95. Description: Two eggs, bacon or sausage, toast, and our ever-popular hash browns. Calories: 950
Quellenmaterialien:
Beispiel einer XML-Datei von W3Schools.
Sind meine Beiträge hilfreich? Du kannst mich auf Patreon unterstützen.
Das obige ist der detaillierte Inhalt vonArbeiten mit XML in der Python Requests-Bibliothek. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!