Chuyển đổi (convert) Dữ Liệu XML Sang Dữ Liệu JSON Trong Python
Có thể bạn quan tâm
XML và JSON là 2 định dạng (format) dữ liệu được sử dụng phổ biến nhất hiện nay. Trong Python, chúng ta có thể chuyển đổi (convert) giữa 2 định dạng dữ liệu này. Bài này sẽ sử dụng module xmltodict để convert XML sang JSON trong Python.
Trước khi đọc bài này, các bạn nên đọc các bài về XML và JSON trong Python sau:
- Đọc (read) file XML với Python
- Ghi (write) file XML với Python
- Đọc (read) file JSON với Python
- Ghi (write) file JSON với Python
1. Cài đặt module xmltodict trong Python
Module xmltodict được sử dụng để chuyển đổi (convert) định dạng dữ liệu XML sang định dạng dữ liệu JSON trong Python. Module này không có sẵn trong Python. Để sử dụng được module xmltodict, chúng ta cần cài đặt module này với câu lệnh sau:pip install xmltodict
Để tìm hiểu kỹ hơn về thư viện này, các bạn có thể truy cập vào website của project xmltodict 0.12.0.
Các bạn có thể đọc lại bài Cài đặt Python và môi trường lập trình với Visual Studio Code để biết cách cài đặt các thư viện Python trong Visual Studio Code.
2. Chuyển đổi (convert) dữ liệu XML sang dữ liệu JSON trong Python
Chúng ta có một số bước để convert XML sang JSON trong Python:
Bước 1. Mở (open) và đọc (read) dữ liệu trong file XML để được XML string.
Bước 2. Chuyển đổi (convert) XML string thành dictionary trong Python với hàm xmltodict.parse().
Bước 3. Chuyển dictionary thành JSON string trong Python.
Giả sử, chúng ta có file info.xml với nội dung như bên dưới.<website> <domainname>gochocit.com</domainname> <active>True</active> <numberposts>360</numberposts> <category> <item>hardware</item> <item>software</item> <item>network</item> </category> <facebookpage>https://www.facebook.com/gochocit/</facebookpage> <build> <language>php</language> <cms>wordpress</cms> <database>mysql</database> </build> </website>
File info.xml ở trên chỉ gồm các thẻ (tag) mà không có thuộc tính. Đoạn code bên dưới giúp chuyển đổi dữ liệu XML trong file info.xml thành JSON.import xmltodict, json # read file xml with open("info.xml") as file: data_xml = file.read() # convert xml string to dictionary data_dict = xmltodict.parse(data_xml) # convert dictionary to json string data_json = json.dumps(data_dict, indent=4) # print xml string, dictionary, json string print("type of data_xml:", type(data_xml)) print("type of data_dict:", type(data_dict)) print("type of data_json:", type(data_json)) print(data_json)
Kết quả
type of data_xml: <class 'str'> type of data_dict: <class 'collections.OrderedDict'> type of data_json: <class 'str'> { "website": { "domainname": "gochocit.com", "active": "True", "numberposts": "360", "category": { "item": [ "hardware", "software", "network" ] }, "facebookpage": "https://www.facebook.com/gochocit/", "build": { "language": "php", "cms": "wordpress", "database": "mysql" } } }Có thể thấy, các tag trong XML sẽ được chuyển thành key, các text của tag sẽ được chuyển thành value trong JSON.
Giả sử, file info1.xml có gồm các thẻ (tag) và thuộc tính post của tag item như bên dưới.<website> <domainname>gochocit.com</domainname> <active>True</active> <numberposts>360</numberposts> <category> <item post="50">hardware</item> <item post="150">software</item> <item post="17">network</item> </category> <facebookpage>https://www.facebook.com/gochocit/</facebookpage> <build> <language>php</language> <cms>wordpress</cms> <database>mysql</database> </build> </website>
Các thuộc tính trong XML sẽ được chuyển đổi thành gì nhỉ? Cùng xem kết quả của đoạn code bên dưới giúp chuyển đổi dữ liệu XML trong file info1.xml thành JSON để biết câu trả lời.import xmltodict, json # read file xml with open("info1.xml") as file: data_xml = file.read() # convert xml string to dictionary data_dict = xmltodict.parse(data_xml) # convert dictionary to json string data_json = json.dumps(data_dict, indent=4) # print xml string, dictionary, json string print("type of data_xml:", type(data_xml)) print("type of data_dict:", type(data_dict)) print("type of data_json:", type(data_json)) print(data_json)
Kết quả
type of data_xml: <class 'str'> type of data_dict: <class 'collections.OrderedDict'> type of data_json: <class 'str'> { "website": { "domainname": "gochocit.com", "active": "True", "numberposts": "360", "category": { "item": [ { "@post": "50", "#text": "hardware" }, { "@post": "150", "#text": "software" }, { "@post": "17", "#text": "network" } ] }, "facebookpage": "https://www.facebook.com/gochocit/", "build": { "language": "php", "cms": "wordpress", "database": "mysql" } } }Có thể thấy, thuộc tính post của tag item được chuyển thành key “@post” và text của tag item được chuyển thành key “#text“.
- Hàm is_numeric() trong PHP
- Xóa (delete) dữ liệu trong MySQL với PHP
- C++ hỗ trợ đa kế thừa trong lập trình hướng đối tượng
- Truy vấn (select) dữ liệu và câu lệnh where trong MySQL với PHP
- Hướng dẫn cài đặt và sử dụng Arduino IDE
Từ khóa » đọc File Json Trong Java
-
[MLJ_13] Đọc Ghi File JSON Trong JAVA - Code Lean
-
mple - Phân Tích Cú Pháp JSON Trong Java - VietTuts
-
Cách đọc Tệp Json Vào Java Với Thư Viện JSON đơn Giản? - HelpEx
-
Đọc Ghi File Json Trong Jackson Với Java IO - Deft Blog
-
Hướng Dẫn Và Ví Dụ Java JSON Processing API (JSONP)
-
Xử Lý JSON Trong Java Với GSON Như Thế Nào? - CodeLearn
-
JSON: Tạo JSON File & đọc Nội Dung JSON File Thông Tin Cá Nhân ...
-
[Video] Gson Trong Java - Bài Tập Quản Lý Sản Phẩm + Json Trong Java
-
Read File Json In Java - Nguyễn Đăng Khiêm
-
Làm Việc Với JSON Trong Java - YouTube
-
mple – Phân Tích Cú Pháp JSON Trong Java
-
Cách Sử Dụng Gson để Serialize Data Thành Json Trong Java
-
Bài 11: Xử Lý JSON Trong Android - Programming Tutorial