Phân tích cú pháp JSON bằng Python - 3 bước đơn giản

Hướng dẫn, Làm thế nào để, Python, Mar-06-20245 phút đọc

Phân tích cú pháp dữ liệu JSON bằng Python giúp dễ dàng chuyển đổi dữ liệu với chất lượng nhẹ của chúng. Tập đoàn Dữ liệu Quốc tế dự đoán, đến năm 2022, Big Data và Business Industry sẽ tăng 62% so với năm 2018. Vì chia sẻ dữ liệu là một điều khá phổ biến trong thế giới kỹ thuật số, mọi người có ý định gửi vô số dữ liệu từ các máy chủ chính của họ đến

Phân tích cú pháp dữ liệu JSON bằng Python giúp dễ dàng chuyển đổi dữ liệu với chất lượng nhẹ của chúng. Tập đoàn Dữ liệu Quốc tế dự đoán, đến năm 2022, Big Data và Business Industry sẽ tăng 62% so với năm 2018. Vì chia sẻ dữ liệu là một điều khá phổ biến trong thế giới kỹ thuật số, mọi người có ý định gửi vô số dữ liệu từ máy chủ chính của họ đến các ứng dụng khách hoặc từ máy chủ này sang cơ sở dữ liệu khác. Mọi người phụ thuộc rất nhiều vào các định dạng tệp trao đổi dữ liệu như JSON để truyền dữ liệu đến thiết bị ở đầu kia chuyển đổi dữ liệu thành định dạng người dùng có thể đọc được. Trong bài viết này, chúng ta hãy cùng khám phá JSON là gì, cách phân tích cú pháp JSON trong Python và tại sao?

Mục lục

Tại sao phân tích cú pháp JSON trong Python?

JSON là một định dạng nhẹ, điều này giúp giảm bớt sự chuyển đổi bằng thời gian và tốc độ. Đây là lý do tại sao các học viên dữ liệu thích gửi và nhận tin nhắn ở định dạng JSON. Tuy nhiên, khi dữ liệu được chuyển đổi yêu cầu các thao tác tiếp theo, người dùng phải chuyển đổi chúng thành ngôn ngữ dễ hiểu của máy. Đây là lý do tại sao mọi người phân tích cú pháp JSON trong python. Ở đây, chúng tôi đang làm việc với ngôn ngữ Python. Vì vậy, chúng ta sẽ phải đọc và phân tích cú pháp JSON bằng cách sử dụng các thư viện và hàm Python để truy cập dữ liệu.

Để biết tầm quan trọng của phân tích cú pháp dữ liệu, hãy xem qua bài viết Phân tích cú pháp dữ liệu và lợi ích này.

JSON là gì?

Ký hiệu đối tượng Javascript (JSON) là một định dạng dữ liệu nhẹ truyền thông tin từ máy chủ đến ứng dụng web ở định dạng người dùng có thể đọc được. Mặc dù định dạng JSON là một dẫn xuất JavaScript, nó sử dụng định dạng văn bản để đại diện cho các đối tượng. Máy có thể phân tích cú pháp JSON bằng Python để chuyển đổi dữ liệu JSON thành định dạng máy có thể đọc được.

Dữ liệu JSON mẫu

{
   "person": [
 
      {
         "name": "John",
         "age": "26",
         "languages": ["C", “Python”]
      },
 
      {
         “name": “Nitin",
         "age": "24",
         "languages": ["Java", “Python”]
      }
   ]
}

Đây là chuỗi JSON mẫu. Nội dung trong dấu ngoặc nhọn là một đối tượng và dữ liệu trong dấu ngoặc vuông là một mảng. 

Cách phân tích cú pháp JSON trong Python

The JSON string {“name”: “John”, “age”: “26”, “languages”: [“C”, “Python”]} is similar to the dictionaries in Python. Just like dictionaries, JSON also has keys and values. Here the keys and value pairs are separated with a colon. The ‘name,’ ‘age,’ and ‘languages’ are the keys, and the data after the colon are the values of the respective keys. JSON can be accessed in Python using the JSON library that holds all the functions to convert the JSON strings into Python dictionaries and vice versa. 

Python có thể truy cập dữ liệu JSON bằng cách nhập thư viện JSON bằng mã python. Mô-đun JSON trong Python cho phép người dùng đọc, viết, phân tích cú pháp và thực hiện các thao tác khác trên dữ liệu JSON.

 Nhập JSON

Phân tích dữ liệu JSON thành các đối tượng Python

Dữ liệu JSON có nhiều loại như chuỗi, mảng, đối tượng, số, tệp và nhiều loại khác. 

Python Parse JSON – Đối tượng Python tương đương

Sau khi nhận được dữ liệu JSON, nhiệm vụ chính là chuyển đổi dữ liệu JSON thành các kiểu dữ liệu Python. Bảng này hiển thị danh sách các kiểu dữ liệu JSON và các định dạng Python tương đương của chúng.

Kiểu dữ liệu JSONKiểu dữ liệu Python
đối tượngCHÍNH TẢ
mảngDanh sách, Tuple
xâuStr
sốint, phao
thậtThật
saiSai
không aiKhông

Các bước để phân tích dữ liệu JSON khác nhau thành Python

Ở đây chúng ta sẽ tìm hiểu cách phân tích cú pháp dữ liệu JSON nhất định thành định dạng Python tương đương của chúng. 

JSON Strings into Python DictionariesJSON Array into Python ListsJSON File into Python Objects. 

Phân tích cú pháp JSON trong Python - Chuyển đổi chuỗi thành từ điển

Hãy xem xét một chuỗi JSON mẫu.

{
  "name": "John", 
  "age": "26"
 }

Gán chuỗi trong một biến có thể giảm bớt các hoạt động phân tích cú pháp bằng cách truyền biến vào các hàm.  Ví dụ: print(person)

person ='{"name": "John", "age": "26"}'

Câu lệnh print(person) sẽ in chuỗi. 

person ='{"name": "John", "age": "26"}'
print(person)

Ra 

{“name”: “John”, “age”: “26”}

Truyền biến vào hàm type() sẽ đảm bảo rằng dữ liệu là chuỗi.

person ='{"name": "John", "age": "26"}'
 print(person)
 print(type(person))

Ra 

{“name”: “John”, “age”: “26”}

<class ‘str’>

Chuyển đổi chuỗi thành từ điển

Bước đầu tiên là phân tích cú pháp dữ liệu JSON ở dạng chuỗi, thành dạng thân thiện với Python. Như đã thảo luận trước đó, chuỗi JSON và từ điển Python khá giống nhau vì cả hai đều có cấu trúc cặp khóa-giá trị. Để đọc và phân tích cú pháp dữ liệu JSON trong python, trước tiên hãy import thư viện JSON. Hàm loads() được sử dụng để phân tích cú pháp các chuỗi JSON thành từ điển Python. Chữ 's' trong hàm loads() biểu thị chuỗi.

import json
 json.loads(STRNAME)

Hãy xem xét chuỗi JSON mẫu mà chúng ta đã in trong mẫu trên. 

person ='{"name": "John", "age": "26"}'
 print(person)

Sử dụng hàm json.loads() để chuyển đổi chuỗi sang từ điển python. 'json' trong json.loads() biểu thị tên thư viện. 

json.loads(người)

Cũng cần phải gán câu lệnh load() cho một biến mới. Ở đây, chúng ta đã sử dụng biến 'person_dxnry'. 

person_dxnry = json.loads(người)pyt

Sau khi chuyển đổi chuỗi thành từ điển và gán nó cho một biến mới, chúng ta có thể sử dụng hàm type() để xem loại dữ liệu trước và sau khi chuyển đổi.

in (loại (người))
in(loại(person_dxnry))
import json
 person ='{"name": "John", "age": "26"}'
 print(person)
 print(type(person))
 person_dxnry = json.loads(person)
 print(person_dxnry)
 print(type(person_dxnry))

Ra:

{“name”: “John”, “age”: “26”}

<class ‘str’>

{‘name’: ‘John’, ‘age’: ’26’}

<class ‘dict’>

Ở đây, các hàm type() hiển thị type là một chuỗi trong trường hợp ban đầu và sau đó nó trở thành từ điển sau khi chuyển đổi. 

Phân tích cú pháp JSON trong Python - Chuyển đổi mảng thành danh sách

Chúng ta hãy thử chuyển đổi một kiểu dữ liệu JSON khác thành cấu trúc Python, sử dụng mã JSON mẫu này có mảng.

{
         "name": "John",
         "age": "26",
         "languages": ["C", “Python”]
      }

Chúng ta có thể gán mảng cho một biến 'languages' để truyền nó vào hàm loads(). Sau đó, chúng ta có thể tạo một biến mới 'language_list' để gán kết quả của hàm loads().

languages = '["C", "Python"]'
 languages_list = json.loads(languages)
Nhập JSONPYT
 languages = '["C", "Python"]'
 languages_list = json.loads(ngôn ngữ)
 in(languages_list)
 in(loại(languages_list))

Sử dụng hàm type() cho cả hai biến có thể giúp chúng ta xác minh các kiểu dữ liệu.

Ra

['C', 'Python']

<class ‘list’>

Đầu ra này nói rằng mảng JSON trong 'languages' được chuyển đổi thành một danh sách bởi hàm loads().

Phân tích cú pháp JSON trong Python - Tệp để đối tượng

Định dạng JSON phổ biến nhất là một chuỗi. Cũng có nhiều cơ hội nhận dữ liệu ở định dạng JSON dưới dạng tệp. Dù kiểu dữ liệu là gì, mục đích cuối cùng là phân tích cú pháp chúng thành định dạng có thể đọc được bằng python. Có hai hàm, như load() và loads(), bạn có thể sử dụng để phân tích cú pháp. Các hàm phân tích cú pháp JSON này khác nhau tùy theo kiểu dữ liệu JSON. Chúng tôi sẽ thảo luận ngắn gọn về các chức năng này trong các phần sắp tới.

Thư viện JSON tích hợp của Python cung cấp một hàm chuyển đổi khác 'load()' để đọc và phân tích cú pháp tệp JSON trong Python. 

Làm thế nào để đọc và phân tích cú pháp một tập tin JSON?

Python Parse JSON – Ba phương pháp.

Bước đầu tiên là lưu mã mẫu này với tên 'person.json'

{
         "name": "John",
         "age": "26",
      }

Có hai hàm để phân tích cú pháp tệp JSON. Một là hàm open(). Phương thức open() giúp mở tệp JSON và hướng dẫn trình biên dịch thực hiện quá trình chuyển đổi bằng cách sử dụng thao tác load(). 

với open('person.json')  file:p yt

Sau khi mở tệp JSON, chúng ta phải tạo một biến 'dữ liệu' để gán các hoạt động tải.

dữ liệu = json.load (tệp)

Cuối cùng, chúng ta có thể sử dụng hàm type() để kiểm tra kiểu nội dung.

print(type(data))

Chúng ta có thể truy cập các phần tử trong từ điển đã chuyển đổi bằng cách sử dụng biến 'data' và chuyển các khóa của từ điển như 'tên' và 'tuổi'.

in(data['tuổi'])
 in(data['name'])
Nhập JSON
với open('person.json') dưới dạng tệp:
data = json.load(file)
print(type(data))
print(data['age'])
print(data['name'])

Ra:

<class ‘dict’>

26

John

Đầu ra cho biết loại là 'từ điển'. Đầu ra này có nghĩa là chúng tôi đã chuyển đổi thành công tệp JSON thành danh sách.

Viết Python sang JSON

Chúng ta cũng có thể chuyển đổi các dạng dữ liệu Python thành JSON với các hàm dumps() và dump(). Đây là các tiến trình ngược của hàm load() và loads(). Hãy lấy một từ điển Python và chuyển đổi nó thành một chuỗi JSON, sử dụng hàm dump(). 

 Chúng tôi đã định nghĩa từ điển Python là 'person_dictionary'. 

person_dictionary = {'name': 'John', 'age': 26 }

Sử dụng hàm dumps() để thực hiện thao tác chuyển đổi và gán nó cho một biến mới 'person_json'.

person_json = json.dumps(person_dictionary)
 in(person_json)
import json
person_dictionary = {'name': 'John',
 'age': 26
 }
 person_json = json.dumps(person_dictionary)
 print(person_dictionary)
 print(type(person_dictionary))
 print(person_json)
 print(type(person_json))

Ra:

{‘name’: ‘John’, ‘age’: 26}

<class ‘dict’>

{“name”: “John”, “age”: 26}

<class ‘str’>

Sử dụng hàm type() cho cả hai biến 'person_dictioanry' và 'person_json' đảm bảo định dạng Python được chuyển đổi thành chuỗi JSON.

Proxy có thể trợ giúp như thế nào?

Phân tích cú pháp JSON được ưa thích rộng rãi với các ứng dụng chuyển đổi dữ liệu như cạo, phân tích, di chuyển dữ liệu và quy trình tích hợp dữ liệu. Các giải pháp với proxy này sẽ giúp bạn có trải nghiệm tốt hơn về việc cạo và chuyển đổi dữ liệu không giới hạn bằng python. Xem qua blog này để biết cách thêm proxy với các yêu cầu python.Proxyscrape cung cấp proxy của các loại khác nhau để giúp với quá trình phân tích cú pháp này.

Cũng đọc

Hiểu về proxy trường học

Cách cấu hình proxy cURL

Chuỗi proxy

Câu hỏi thường gặp:

1. Tại sao phân tích cú pháp JSON trong Python?
Phân tích cú pháp JSON cũng có thể với một số ngôn ngữ khác, phân tích cú pháp Python khá phổ biến vì nó cung cấp gói JSON có sẵn để xử lý đọc, chuyển đổi và ghi dữ liệu JSON một cách dễ dàng. Phân tích cú pháp này rất hữu ích trong các ứng dụng như quét web, cạo tin tức, sắp xếp dữ liệu, khai thác dữ liệu, quét công cụ tìm kiếm và các ngành Tiếp thị bất cứ nơi nào cần chuyển đổi dữ liệu.
2. Kể tên một vài ngôn ngữ hỗ trợ JSON?
Định dạng JSON hỗ trợ C ++, Java, PHP, C # và Python.
3. Đối tượng JSON là gì?
Các đối tượng JSON là tập hợp các cặp tên và giá trị trong dấu ngoặc nhọn. Mỗi cặp tên / giá trị được phân tách bằng dấu phẩy trong khi tên được theo sau bởi dấu hai chấm.

Tóm tắt

JSON đã trở thành một thứ thiết yếu khi làm việc trên các trang web. Bất cứ khi nào có nhu cầu truyền dữ liệu hoặc chia sẻ dữ liệu, mọi người thường sử dụng định dạng JSON vì chúng nhẹ và dễ dàng hoán đổi cho nhau. Định dạng JSON giống như một dạng văn bản, vì vậy người dùng có thể hiểu nội dung một cách dễ dàng. Máy cũng có thể đọc và phân tích cú pháp nội dung sang định dạng thân thiện với máy. Ở đây, chúng ta đã thảo luận về một vài hàm chuyển đổi trong Python, như open(), load(), loads(), dump() và dumps(). Các hàm tích hợp này của mô-đun JSON có thể đọc và phân tích dữ liệu từ định dạng JSON sang các kiểu dữ liệu Python và ngược lại.