📜  如何使用Python将 XML 数据存储到 MySQL 数据库中?

📅  最后修改于: 2022-05-13 01:55:24.872000             🧑  作者: Mango

如何使用Python将 XML 数据存储到 MySQL 数据库中?

在本文中,我们将通过 XAMPP 服务器使用Python将 XML 数据存储到 MySQL 数据库中。因此,我们正在获取学生 XML 数据并将这些值存储到数据库中。

要求

  • XAMPP 服务器:它是一个跨平台的 Web 服务器,用于在本地服务器上开发和测试程序。它由 Apache Friends 开发和管理,并且是开源的。它有一个 Apache HTTP 服务器、MariaDB 和用于 11 种不同编程语言(如 Perl 和PHP)的解释器。 XAMPP 代表跨平台、Apache、MySQL、 PHP和 Perl。它可以从这里轻松安装。
  • MySQL 连接器: Python 的MySQL 连接器模块用于将 MySQL 数据库与Python程序连接起来,它使用Python数据库 API 规范 v2.0 (PEP 249) 来实现。它使用Python标准库并且没有依赖项。可以使用以下命令安装它:
pip install mysql.connector

方法

  • 启动 XAMPP 服务器

  • 创建 XML 文件。

XML 结构:

我们将使用 XML 模块。

  • xml.etree.ElementTree

这是一个元素树 XML API,用于实现用于解析和创建 XML 数据的简单高效的 API。所以我们需要导入这个模块。

句法:

要创建的 XML 文件名为vignan.xml



XML


    
        Sravan Kumar
        7058
        IT
    
    
        Meghana
        7034
        IT
    
    
        Pranathi
        7046
        EEE
    
    
        Durga
        7078
        Mech
    
    
        Ishitha
        7093
        MBA
    


Python
# import xml element tree
import xml.etree.ElementTree as ET
  
# import mysql connector
import mysql.connector
  
# give the connection parameters
# user name is root
# password is empty
# server is localhost
# database name is database
conn = mysql.connector.connect(user='root', 
                               password='', 
                               host='localhost', 
                               database='database')
  
# reading xml file , file name is vignan.xml
tree = ET.parse('vignan.xml')
  
# in our xml file student is the root for all 
# student data.
data2 = tree.findall('student')
  
# retrieving the data and insert into table
# i value for xml data #j value printing number of 
# values that are stored
for i, j in zip(data2, range(1, 6)):
    name = i.find('name').text
    id = i.find('id').text
    department = i.find('department').text
      
    # sql query to insert data into database
    data = """INSERT INTO vignan(name,id,department) VALUES(%s,%s,%s)"""
  
    # creating the cursor object
    c = conn.cursor()
      
    # executing cursor object
    c.execute(data, (name, id, department))
    conn.commit()
    print("vignan student No-", j, " stored successfully")


  • 对于Python代码:
  1. 创建一个名为a.py的Python文件。
  2. 导入所需的模块。
  3. 建立连接。
  4. 读取 XML 文件。
  5. 从 XML 检索数据并将其插入到数据库中的表中。
  6. 成功插入数据时显示消息。

Python

# import xml element tree
import xml.etree.ElementTree as ET
  
# import mysql connector
import mysql.connector
  
# give the connection parameters
# user name is root
# password is empty
# server is localhost
# database name is database
conn = mysql.connector.connect(user='root', 
                               password='', 
                               host='localhost', 
                               database='database')
  
# reading xml file , file name is vignan.xml
tree = ET.parse('vignan.xml')
  
# in our xml file student is the root for all 
# student data.
data2 = tree.findall('student')
  
# retrieving the data and insert into table
# i value for xml data #j value printing number of 
# values that are stored
for i, j in zip(data2, range(1, 6)):
    name = i.find('name').text
    id = i.find('id').text
    department = i.find('department').text
      
    # sql query to insert data into database
    data = """INSERT INTO vignan(name,id,department) VALUES(%s,%s,%s)"""
  
    # creating the cursor object
    c = conn.cursor()
      
    # executing cursor object
    c.execute(data, (name, id, department))
    conn.commit()
    print("vignan student No-", j, " stored successfully")

输出:

  • 保存两个文件

  • 验证最近插入值的表的内容。