如何使用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。所以我们需要导入这个模块。
句法:
import xml.etree.ElementTree
要创建的 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代码:
- 创建一个名为a.py的Python文件。
- 导入所需的模块。
- 建立连接。
- 读取 XML 文件。
- 从 XML 检索数据并将其插入到数据库中的表中。
- 成功插入数据时显示消息。
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")
输出:
- 保存两个文件
- 验证最近插入值的表的内容。