Python - Xử lý dữ liệu JSON
Tệp JSON lưu trữ dữ liệu dưới dạng văn bản ở định dạng con người có thể đọc được. JSON là viết tắt của JavaScript Object Notation. Gấu trúc có thể đọc các tệp JSON bằng cách sử dụngread_json chức năng.
Dữ liệu đầu vào
Tạo tệp JSON bằng cách sao chép dữ liệu bên dưới vào trình soạn thảo văn bản như notepad. Lưu tệp với.json phần mở rộng và chọn loại tệp là all files(*.*).
{
"ID":["1","2","3","4","5","6","7","8" ],
"Name":["Rick","Dan","Michelle","Ryan","Gary","Nina","Simon","Guru" ]
"Salary":["623.3","515.2","611","729","843.25","578","632.8","722.5" ],
"StartDate":[ "1/1/2012","9/23/2013","11/15/2014","5/11/2014","3/27/2015","5/21/2013",
"7/30/2013","6/17/2014"],
"Dept":[ "IT","Operations","IT","HR","Finance","IT","Operations","Finance"]
}
Đọc tệp JSON
Các read_json chức năng của thư viện gấu trúc có thể được sử dụng để đọc tệp JSON thành DataFrame gấu trúc.
import pandas as pd
data = pd.read_json('path/input.json')
print (data)
Khi chúng tôi thực thi đoạn mã trên, nó tạo ra kết quả như sau.
Dept ID Name Salary StartDate
0 IT 1 Rick 623.30 1/1/2012
1 Operations 2 Dan 515.20 9/23/2013
2 IT 3 Tusar 611.00 11/15/2014
3 HR 4 Ryan 729.00 5/11/2014
4 Finance 5 Gary 843.25 3/27/2015
5 IT 6 Rasmi 578.00 5/21/2013
6 Operations 7 Pranab 632.80 7/30/2013
7 Finance 8 Guru 722.50 6/17/2014
Đọc các cột và hàng cụ thể
Tương tự như những gì chúng ta đã thấy trong chương trước để đọc tệp CSV, read_jsonchức năng của thư viện gấu trúc cũng có thể được sử dụng để đọc một số cột cụ thể và các hàng cụ thể sau khi tệp JSON được đọc tới DataFrame. Chúng tôi sử dụng phương pháp lập chỉ mục nhiều trục được gọi là.loc()vì mục đích này. Chúng tôi chọn hiển thị cột Lương và Tên cho một số hàng.
import pandas as pd
data = pd.read_json('path/input.xlsx')
# Use the multi-axes indexing funtion
print (data.loc[[1,3,5],['salary','name']])
Khi chúng tôi thực thi đoạn mã trên, nó tạo ra kết quả như sau.
salary name
1 515.2 Dan
3 729.0 Ryan
5 578.0 Rasmi
Đọc tệp JSON dưới dạng Bản ghi
Chúng tôi cũng có thể áp dụng to_json cùng với các tham số để đọc nội dung tệp JSON thành các bản ghi riêng lẻ.
import pandas as pd
data = pd.read_json('path/input.xlsx')
print(data.to_json(orient='records', lines=True))
Khi chúng tôi thực thi đoạn mã trên, nó tạo ra kết quả như sau.
{"Dept":"IT","ID":1,"Name":"Rick","Salary":623.3,"StartDate":"1\/1\/2012"}
{"Dept":"Operations","ID":2,"Name":"Dan","Salary":515.2,"StartDate":"9\/23\/2013"}
{"Dept":"IT","ID":3,"Name":"Tusar","Salary":611.0,"StartDate":"11\/15\/2014"}
{"Dept":"HR","ID":4,"Name":"Ryan","Salary":729.0,"StartDate":"5\/11\/2014"}
{"Dept":"Finance","ID":5,"Name":"Gary","Salary":843.25,"StartDate":"3\/27\/2015"}
{"Dept":"IT","ID":6,"Name":"Rasmi","Salary":578.0,"StartDate":"5\/21\/2013"}
{"Dept":"Operations","ID":7,"Name":"Pranab","Salary":632.8,"StartDate":"7\/30\/2013"}
{"Dept":"Finance","ID":8,"Name":"Guru","Salary":722.5,"StartDate":"6\/17\/2014"}