Trong hướng dẫn này, chúng ta sẽ tìm hiểu cách chuyển đổi dữ liệu XML thành dữ liệu JSON và cũng như cách chuyển đổi tệp XML thành dữ liệu JSON trong Python
XML [Extensible Markup Language] là một ngôn ngữ đánh dấu như HTML và được sử dụng để lưu trữ và vận chuyển dữ liệu. Mặt khác, JSON [JavaScript Object Notation] là một định dạng dữ liệu phổ biến được sử dụng để thao tác dữ liệu. Thông thường, các nhà phát triển thích JSON hơn XML. Vì vậy, chúng ta phải học cách chuyển đổi từ XML sang JSON. Nhưng việc chuyển đổi sẽ dễ dàng nếu chúng ta chuyển đổi XML sang từ điển Python và sau đó từ từ điển Python sang JSON
Có lẽ bạn là một sinh viên cần hỗ trợ mã hóa?
Chuyển XML sang JSON bằng Python
Chúng tôi có thể chuyển đổi XML sang từ điển Python bằng cách sử dụng mô-đun 'xmltodict'. Vì vậy, trước hết, bạn nên cài đặt ‘xmltodict’ bằng cách sử dụng lệnh ‘pip‘ từ dấu nhắc lệnh như thế này
pip install xmltodict
Ảnh chụp màn hình của kết quả được đưa ra dưới đây
Bây giờ trong python nhàn rỗi, chúng ta phải nhập 'xmltodict' và 'json' như hình bên dưới
import xmltodict import json
Bây giờ để chuyển đổi XML sang từ điển Python, chúng tôi sử dụng phương thức 'phân tích cú pháp' của mô-đun 'xmltodict' và để chuyển đổi từ điển Python thành JSON, chúng tôi sử dụng phương thức 'dumps' của mô-đun 'json'. Xem đoạn mã dưới đây
import xmltodict import json xml=''' CodespeedyRelated to programming You can learn easily from codespeedy ''' my_dict=xmltodict.parse[xml] json_data=json.dumps[my_dict] print[json_data]
đầu ra
{"website": {"name": "Codespeedy", "article": "Related to programming", "message": "You can learn easily from codespeedy"}}
Trong đoạn mã trên, dữ liệu XML 'xml' được chuyển đổi thành từ điển 'my_dict' bằng phương thức 'parse' và 'my_dict' được chuyển đổi thành dữ liệu JSON json_data' bằng phương thức 'dumps'
Chuyển đổi tệp XML thành JSON trong Python
Hãy xem xét tệp XML sau được lưu dưới dạng 'my_xml. xml'
CodespeedyRelated to programming You can learn easily from codespeedy
Đầu tiên, chúng ta nên mở ‘. xml’ bằng chức năng ‘mở‘ và sau đó sử dụng chức năng ‘read[]‘ để đọc nội dung tệp. Bây giờ chúng ta có thể chuyển đổi nó thành JSON giống như cách chúng ta đã làm trước đó
XML [Ngôn ngữ đánh dấu mở rộng] có thể tạo các phần tử để lưu trữ dữ liệu. Nó được sử dụng để trao đổi dữ liệu có cấu trúc qua API và ứng dụng. JSON [Ký hiệu đối tượng JavaScript] cũng là một ký hiệu cấu trúc dữ liệu được sử dụng rất phổ biến để truyền dữ liệu giữa các API và ứng dụng web. Nó dựa trên mảng và từ điển. Nó được xây dựng như một cải tiến so với XML
Ngôn ngữ lập trình Python có sẵn các mô-đun để phân tích cả dữ liệu JSON và XML. Không có phương pháp trực tiếp để chuyển đổi XML thành JSON, vì vậy chúng tôi sẽ sử dụng từ điển làm trung gian. Chúng ta sẽ tìm hiểu cách thực hiện chuyển đổi này trong bài viết này
Mục lục
Sử dụng mô-đun xmltodict
và json
để chuyển đổi dữ liệu XML sang JSON
xmltodict
là một mô-đun được sử dụng để đọc và phân tích cú pháp dữ liệu XML thành các cấu trúc kiểu danh sách và từ điển. Chúng ta có thể sử dụng chức năng xmltodict.parse[]
từ mô-đun này để đạt được điều này
Sau đó chúng ta có thể sử dụng mô-đun json
để ghi dữ liệu này vào kiểu JSON. Hàm
import xmltodict import json0 có thể ghi đối tượng đã cho vào chuỗi JSON.
Xem đoạn mã sau
1
2
3
4
5
6
7
8
9
10
11
12
13
14
nhập xmltodict, json
xml_string = """
102
Đánh dấu
Tài khoản
75000
"""
d = xmltodict. phân tích cú pháp[xml_string]
json_str = json. kết xuất[d]
in[json_str]
đầu ra
{“emp”. {"Tôi". “102”, “tên”. “Đánh dấu”, “bộ phận”. “Tài khoản”, “sal”. “75000”}}
Trong ví dụ trên,
- Chúng tôi đã tạo một đối tượng lưu trữ chuỗi XML
- Hàm
xmltodict.parse[]
phân tích cú pháp này thành một đối tượng kiểu từ điển - Chúng tôi chuyển đối tượng này đến hàm
import xmltodict import json
0 trả về một chuỗi có định dạng JSON
Sử dụng mô-đun import xmltodict
import json
3 và json
để chuyển đổi dữ liệu XML thành JSON
Mô-đun json
0 là một phương pháp hiệu quả để phân tích cú pháp dữ liệu XML dưới dạng cây. Chúng ta có thể sử dụng mô-đun này để tạo một hàm do người dùng định nghĩa sẽ phân tích cú pháp chuỗi XML của chúng ta thành một từ điển, chúng ta có thể ghi hàm này dưới dạng tệp JSON bằng mô-đun json
Xem mã dưới đây
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
từ bộ sưu tập nhập defaultdict
từ xml. etree nhập ElementTree as ET
def xmldict[t]:
d = {t.thẻ. {} nếu t. thuộc tính khác Không có}
con = danh sách[t]
nếu con.
dd = defaultdict[list]
cho dc trong bản đồ[xmldict, children]:
cho k, v in dc.mặt hàng[].
dd[k].chắp thêm[v]
d = {t.thẻ. {k. v[0] if len[v] == 1 else v
cho k, v in dd.mặt hàng[]}}
nếu t. văn bản.
văn bản = t. văn bản. cởi bỏ[]
nếu trẻ em hoặc t.thuộc tính.
nếu văn bản.
d[t. thẻ]['#text'] = text
khác.
d[t. thẻ] = văn bản
return d
xml_string = """
102
Đánh dấu
Tài khoản
75000
"""
xml_data = ET. XML[xml_string]
d = xmldict[xml_data]
json_str = json. kết xuất[d]
in[json_str]
đầu ra
{“emp”. {"Tôi". “102”, “tên”. “Đánh dấu”, “bộ phận”. “Tài khoản”, “sal”. “75000”}}
Bây giờ, hãy cho chúng tôi hiểu những gì chúng tôi đã triển khai trong đoạn mã trên
- Chúng tôi chuyển chuỗi XML bằng hàm
json
2 - Chúng tôi chuyển dữ liệu này đến một chức năng gọi là
json
3 - Chúng tôi xử lý dữ liệu này để trả về một từ điển
- Từ điển này sau đó được chuyển đến hàm
import xmltodict import json
0, hàm này trả về dữ liệu JSON cuối cùng
Sử dụng mô-đun json
5 và json
để chuyển đổi dữ liệu XML sang JSON
json
5 là một thư viện mới và đơn giản có sẵn để xử lý dữ liệu XML trong Python. Nó cung cấp các đối tượng khác nhau để phân tích dữ liệu khác nhau