Python JSON: Đọc, Viết, Phân tích cú pháp JSON (Có Ví dụ)

Trong hướng dẫn này, bạn sẽ học cách phân tích cú pháp, đọc và viết JSON bằng Python với sự trợ giúp của các ví dụ. Ngoài ra, bạn sẽ học cách chuyển đổi JSON thành dict và in nó ra.

JSON ( J ava S cript O bject N otation) là một định dạng dữ liệu phổ biến được sử dụng để biểu diễn dữ liệu có cấu trúc. Việc truyền và nhận dữ liệu giữa máy chủ và ứng dụng web ở định dạng JSON là điều phổ biến.

Trong Python, JSON tồn tại dưới dạng một chuỗi. Ví dụ:

 p = '("name": "Bob", "languages": ("Python", "Java"))' 

Nó cũng phổ biến để lưu trữ một đối tượng JSON trong một tệp.

Nhập mô-đun json

Để làm việc với JSON (chuỗi hoặc tệp chứa đối tượng JSON), bạn có thể sử dụng jsonmô-đun của Python . Bạn cần nhập mô-đun trước khi có thể sử dụng.

 import json

Phân tích cú pháp JSON bằng Python

Các jsonmô-đun làm cho nó dễ dàng để phân tích chuỗi JSON và các tập tin có chứa đối tượng JSON.

Ví dụ 1: Python JSON để ra lệnh

Bạn có thể phân tích cú pháp chuỗi JSON bằng json.loads()phương thức. Phương thức trả về một từ điển.

 import json person = '("name": "Bob", "languages": ("English", "Fench"))' person_dict = json.loads(person) # Output: ('name': 'Bob', 'languages': ('English', 'Fench')) print( person_dict) # Output: ('English', 'French') print(person_dict('languages'))

Ở đây, person là một chuỗi JSON và person_dict là một từ điển.

Ví dụ 2: Python đọc tệp JSON

Bạn có thể sử dụng json.load()phương thức để đọc tệp chứa đối tượng JSON.

Giả sử, bạn có một tệp có tên person.jsonchứa đối tượng JSON.

  ("name": "Bob", "languages": ("English", "Fench") ) 

Đây là cách bạn có thể phân tích cú pháp tệp này:

  import json with open('path_to_file/person.json') as f: data = json.load(f) # Output: ('name': 'Bob', 'languages': ('English', 'Fench')) print(data) 

Ở đây, chúng ta đã sử dụng open()hàm để đọc tệp json. Sau đó, tệp được phân tích cú pháp bằng json.load()phương pháp cung cấp cho chúng ta một dữ liệu có tên từ điển.

Nếu bạn không biết cách đọc và ghi tệp bằng Python, chúng tôi khuyên bạn nên kiểm tra I / O tệp Python.

Chuyển đổi Python sang chuỗi JSON

Bạn có thể chuyển đổi từ điển sang chuỗi JSON bằng json.dumps()phương pháp.

Ví dụ 3: Chuyển đổi dict thành JSON

  import json person_dict = ('name': 'Bob', 'age': 12, 'children': None ) person_json = json.dumps(person_dict) # Output: ("name": "Bob", "age": 12, "children": null) print(person_json) 

Đây là bảng hiển thị các đối tượng Python và chuyển đổi tương đương của chúng sang JSON.

Python JSON tương đương
dict vật
list, tuple mảng
str chuỗi
int, float,int con số
True thật
False sai
None vô giá trị

Ghi JSON vào một tệp

Để ghi JSON vào một tệp bằng Python, chúng ta có thể sử dụng json.dump()phương thức.

Ví dụ 4: Ghi JSON vào một tệp

  import json person_dict = ("name": "Bob", "languages": ("English", "Fench"), "married": True, "age": 32 ) with open('person.txt', 'w') as json_file: json.dump(person_dict, json_file) 

Trong chương trình trên, chúng tôi đã mở một tệp có tên person.txtở chế độ ghi bằng cách sử dụng 'w'. Nếu tệp chưa tồn tại, nó sẽ được tạo. Sau đó, json.dump()chuyển đổi person_dictthành một chuỗi JSON sẽ được lưu trong person.txttệp.

Khi bạn chạy chương trình, person.txttệp sẽ được tạo. Tệp có văn bản sau bên trong nó.

 ("name": "Bob", "languages": ("English", "Fench"), "married": true, "age": 32)

Python JSON in đẹp

Để phân tích và gỡ lỗi dữ liệu JSON, chúng tôi có thể cần in dữ liệu đó ở định dạng dễ đọc hơn. Điều này có thể được thực hiện bằng cách chuyển các tham số bổ sung indentsort_keystới json.dumps()json.dump()phương thức.

Ví dụ 5: JSON in đẹp trong Python

  import json person_string = '("name": "Bob", "languages": "English", "numbers": (2, 1.6, null))' # Getting dictionary person_dict = json.loads(person_string) # Pretty Printing JSON string back print(json.dumps(person_dict, indent = 4, sort_keys=True)) 

Khi bạn chạy chương trình, đầu ra sẽ là:

 ("ngôn ngữ": "tiếng Anh", "tên": "Bob", "số": (2, 1.6, null)) 

Trong chương trình trên, chúng ta đã sử dụng 4dấu cách để thụt lề. Và, các phím được sắp xếp theo thứ tự tăng dần.

Nhân tiện, giá trị mặc định của thụt lề là None. Và, giá trị mặc định của sort_keys là False.

Bài đọc được đề xuất:

  • Python JSON sang CSV và ngược lại
  • Python XML sang JSON và ngược lại
  • Python simplejson

thú vị bài viết...