Maison > développement back-end > Tutoriel Python > Travailler avec XML dans la bibliothèque de requêtes Python

Travailler avec XML dans la bibliothèque de requêtes Python

DDD
Libérer: 2024-12-30 08:31:29
original
230 Les gens l'ont consulté

Working with XML in Python Requests library

Qu'est-ce que XML ? XML signifie Extensible Markup Language, qui nécessite de stocker des données structurées et de regrouper tous les éléments. Dans le langage de balisage XML, vous pouvez créer des balises avec n'importe quel nom. Les exemples les plus populaires de XML - Plans de site et flux RSS.

Exemple de fichier XML :

<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>
Copier après la connexion

Dans cet exemple, le fichier contient la balise globale breakfast_menu, qui inclut les catégories d'aliments, et chaque catégorie d'aliments comprend la balise nom, prix, description et calories.

Maintenant, nous commençons à apprendre à travailler avec la bibliothèque XML et Python Requests. Nous devons d’abord préparer notre environnement de travail.

Pour créer un nouveau projet et un environnement virtuel, installez le package python3-virtualenv. Il faut des exigences de séparation de chaque projet. Installation sous Debian/Ubuntu :

sudo apt install python3 python3-virtualenv -y
Copier après la connexion

Créer un dossier de projet :

mkdir my_project
cd my_project
Copier après la connexion

Créez un environnement virtuel Python avec le dossier nommé env :

python3 -m venv env
Copier après la connexion

Activer l'environnement virtuel :

source env/bin/activate
Copier après la connexion

Installer les dépendances de PIP :

pip3 install requests
Copier après la connexion

Commençons à écrire du code.

Créez le fichier main.py et insérez le code ci-dessous :

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)
Copier après la connexion

Cet extrait de code nous aide à trouver toutes les balises internes.

La sortie de ce code :

(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
Copier après la connexion

Maintenant, nous écrivons du code pour obtenir les valeurs des éléments internes. Ouvrez le fichier main.py et remplacez le code précédent par ceci :

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'))
Copier après la connexion

Nous avons reçu le résultat suivant :

(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
Copier après la connexion

À la dernière étape, nous embellissons les données de sortie pour les rendre plus faciles à lire :

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')))
Copier après la connexion

Ici sortie :

(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
Copier après la connexion

Matériaux sources :
Exemple de fichier XML extrait de W3Schools.


Mes messages sont-ils utiles ? Vous pouvez me soutenir sur Patreon.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:dev.to
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal