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"}