Làm thế nào để bạn truy cập dữ liệu xml trong python?

Cách trích xuất dữ liệu hiệu quả từ tệp XML bằng mã python đơn giản ở dạng dễ thao tác

Ảnh của Markus Winkler trên Bapt

XML [Extensible Markup Language] là một ngôn ngữ đánh dấu rất giống với HTML [Hypertext Markup Language]. XML được sử dụng để cấu trúc dữ liệu để vận chuyển và lưu trữ. Nó sử dụng văn bản và thẻ để mô tả các thành phần trong một tệp. Các tệp XML là một loại dữ liệu bán cấu trúc

Khi làm việc trên một dự án cá nhân bằng Python, tôi nhận thấy cần phải trích xuất dữ liệu từ các tệp XML thành các định dạng phù hợp như CSV. Làm việc với dữ liệu ở các định dạng như vậy sẽ dễ dàng hơn. Sau đây là một cách đơn giản mà tôi đã sử dụng để hoàn thành nhiệm vụ

Làm cách nào để diễn giải dữ liệu trong tệp XML?

Trên đây là một phần của tệp XML mà chúng tôi sẽ sử dụng để trích xuất dữ liệu. Bạn có thể tải xuống tệp gốc từ Kaggle

This file has records for jobs in the UK, each with certain fields of information such as job title, job description, etc. A pre-requisite for this method is that we need to know the structure of the XML file. Here the is used to mention a unique ID for the record. , , , etc. tags contain the descriptive values for every job referred to by the current unique ID.

1. Nhập các thư viện python cần thiết
import pandas as pd
import numpy as np
import xml.etree.cElementTree as et

chúng tôi sẽ sử dụng gói xml mà từ đó chúng tôi nhập etree. cElementTree là 'et' để làm việc đơn giản. 'Phần tử' là một đối tượng chứa linh hoạt được sử dụng để lưu trữ các cấu trúc dữ liệu phân cấp trong bộ nhớ

2. Phân tích cú pháp tệp XML
tree=et.parse['/content/drive/My Drive/Colab Notebooks/Monster_UK_Jobs/monster_uk-job_sample.xml']root=tree.getroot[]

Sử dụng et. parse[] chúng tôi phân tích tệp XML thành đối tượng 'cây' [Thay thế đường dẫn tệp bằng đường dẫn đến tệp XML của bạn]. Quá trình phân tích tệp của chúng tôi sẽ bắt đầu từ gốc của cây. Sử dụng. getroot[], chúng ta lấy gốc của cây được phân tích cú pháp. Bây giờ chúng ta có thể sử dụng root để lặp qua tệp của mình

3. Tạo danh sách cho các giá trị bản ghi

We can observe the structure of our XML file and determine the fields that are associated with each record. These fields are nothing but the values in tags like , , , etc in our case. To store the extracted data, we create empty lists for each such tag value/field.

Timestamp = []
URL = []
Job_Title = []
Category = []
Company_Name = []
City = []
Post_Date = []
Job_Description = []
Company_Description = []
Job_Board = []
Geo = []
Location = []
4. Chuyển đổi dữ liệu

Bây giờ bằng cách sử dụng thư mục gốc, chúng tôi lặp qua tệp của mình và lưu trữ các giá trị trong danh sách mà chúng tôi đã tạo ở bước trước

for time in root.iter['crawl_timestamp']:
print[time.text]
print["step1"]
Timestamp.append[time.text]
for url in root.iter['url']:
print[url.text]
print["step2"]
URL.append[url.text]
for title in root.iter['job_title']:
print["step3"]
Job_Title.append[title.text]
for cat in root.iter['category']:
print["step4"]
Category.append[cat.text]
for cname in root.iter['company_name']:
print["step5"]
Company_Name.append[cname.text]
for ct in root.iter['city']:
print["step6"]
City.append[ct.text]
for pdate in root.iter['post_date']:
print["step7"]
Post_Date.append[pdate.text]
for jd in root.iter['job_description']:
print["step8"]
Job_Description.append[jd.text]
for cd in root.iter['company_description']:
print["step9"]
Company_Description.append[cd.text]
for job_bd in root.iter['job_board']:
print["step10"]
Job_Board.append[job_bd.text]
for go in root.iter['geo']:
print["step11"]
Geo.append[go.text]
for loc in root.iter['location']:
print["LAST STEP"]
Location.append[loc.text]

Sử dụng gốc. iter[‘__’] bằng cách điền giá trị cho từng trường/thẻ tương ứng, chúng ta có thể viết vòng lặp for riêng cho từng trường. Tôi đã thêm một câu lệnh in trong mỗi vòng lặp for để hiểu luồng quy trình trong quá trình thực thi

Hiện chúng tôi đã phân tích cú pháp dữ liệu của mình và lưu trữ các giá trị trong các danh sách riêng biệt. Bước tiếp theo là chuyển đổi nó thành khung dữ liệu gấu trúc để làm cho dữ liệu có thể sử dụng dễ dàng

5. Tạo khung dữ liệu pandas____4

Chọn tất cả các danh sách theo thứ tự mong muốn và thêm tên cột cho các cột tương ứng, chúng tôi đã sử dụng pd. Hàm DataFrame[] để tạo khung dữ liệu

Làm cách nào để truy cập các phần tử XML trong Python?

Để phân tích cú pháp tài liệu XML, bạn cần có toàn bộ tài liệu trong bộ nhớ. .
Để phân tích cú pháp tài liệu XML
Nhập xml. nhà thờ. thiểu số
Sử dụng hàm “parse” để phân tích tài liệu [ doc=xml. nhà thờ. thiểu số. phân tích cú pháp [tên tệp];
Gọi danh sách các thẻ XML từ tài liệu XML bằng mã [=doc. getElementsByTagName[“tên của thẻ xml”]

Làm cách nào để trích xuất dữ liệu XML trong Python?

Cách thức hoạt động của điều này là chúng tôi. .
Tải tài liệu XML của chúng ta vào bộ nhớ và xây dựng một đối tượng XML ElementTree
Sau đó, chúng tôi sử dụng phương thức find, chuyển vào bộ chọn XPath, cho phép chúng tôi chỉ định phần tử nào chúng tôi đang cố trích xuất
Nếu không tìm thấy phần tử, trả về Không có

Làm cách nào để đọc chuỗi XML trong Python?

Có hai cách để phân tích tệp bằng mô-đun 'ElementTree'. Đầu tiên là bằng cách sử dụng hàm parse[] và thứ hai là hàm fromstring[] . Hàm parse[] phân tích cú pháp tài liệu XML được cung cấp dưới dạng tệp trong khi đó, fromstring phân tích cú pháp XML khi được cung cấp dưới dạng chuỗi i. e trong ba dấu ngoặc kép.

XML được sử dụng như thế nào trong Python?

Thư viện chuẩn Python cung cấp một bộ giao diện tối thiểu nhưng hữu ích để hoạt động với XML . Hai API cơ bản và được sử dụng rộng rãi nhất cho dữ liệu XML là giao diện SAX và DOM. API đơn giản cho XML [SAX] − Tại đây, bạn đăng ký các cuộc gọi lại cho các sự kiện quan tâm và sau đó để trình phân tích cú pháp tiến hành thông qua tài liệu.

Chủ Đề