Hướng dẫn python read file json - python đọc tệp json

1. JSON (JavaScript Object Notation) là gì?

JSON (JavaScript Object Notation) là một định dạng (format) dữ liệu bắt nguồn từ ngôn ngữ Javascript. Dữ liệu trong JSON chủ yếu là text, được lưu trữ theo cặp thuộc tính (attribute) – giá trị (value). JSON thường được sử dụng trong các trường hợp:JavaScript Object Notation) là một định dạng (format) dữ liệu bắt nguồn từ ngôn ngữ Javascript. Dữ liệu trong JSON chủ yếu là text, được lưu trữ theo cặp thuộc tính (attribute) – giá trị (value). JSON thường được sử dụng trong các trường hợp:

  • Phát triển web: truyền gửi dữ liệu từ server đến client và ngược lại.: truyền gửi dữ liệu từ server đến client và ngược lại.

Hướng dẫn python read file json - python đọc tệp json

  • Các file cấu hình (configuration files): JSON có thể được sử dụng để lưu trữ các cấu hình (configurations) và cài đặt (settings) trong các ứng dụng. Ví dụ như file settings.json trong Visual Studio Code.: JSON có thể được sử dụng để lưu trữ các cấu hình (configurations) và cài đặt (settings) trong các ứng dụng. Ví dụ như file settings.json trong Visual Studio Code.

Hướng dẫn python read file json - python đọc tệp json

  • Hoặc đơn giản là dùng JSON để lưu trữ dữ liệu.lưu trữ dữ liệu.

Hướng dẫn python read file json - python đọc tệp json

Bên dưới là ví dụ file info.json lưu trữ dữ liệu về thông tin của website gochocit.com.info.json lưu trữ dữ liệu về thông tin của website gochocit.com.

info.json
{ 
    "domainname": "gochocit.com",
    "active": true,
    "numberposts": 360,
    "category": ["hardware", "software", "network"],
    "facebookpage": "https://www.facebook.com/gochocit/",
    "build": {
        "language": "php",
        "cms": "wordpress",
        "database": "mysql"
    }
}

Các lưu ý chính về định dạng của JSON là:

  • JSON bao gồm một chuỗi các cặp key – value (có thể gọi là attribute – value). Và chúng được bao quanh bởi dấu ngoặc nhọn {}.key – value (có thể gọi là attribute – value). Và chúng được bao quanh bởi dấu ngoặc nhọn {}.
  • Mỗi cặp key – value có định dạng "key": . Value có thể là bất kỳ kiểu dữ liệu nào như object, list, string, number, boolean, null,…key – value có định dạng "key": . Value có thể là bất kỳ kiểu dữ liệu nào như object, list, string, number, boolean, null,
  • Các cặp key – value được cách nhau bởi dấu phẩy ,. Chỉ cặp key – value cuối cùng thì không có dấu phẩy , phía sau.key – value được cách nhau bởi dấu phẩy ,. Chỉ cặp key – value cuối cùng thì không có dấu phẩy , phía sau.

Lưu ý: Chúng ta nên sử dụng thụt đầu dòng (indentation) để làm cho JSON rõ ràng, dễ đọc hơn.: Chúng ta nên sử dụng thụt đầu dòng (indentation) để làm cho JSON rõ ràng, dễ đọc hơn.

2. Đọc (read) file JSON với module json trong Python

Python xây dựng sẵn module json để làm việc với JSON. Chúng ta cần

import json

with open('info.json', 'r') as f:
  data = json.load(f)

print(type(data))
print(data)
0để sử dụng module này. Nhưng trước hết, chúng ta cần mở (open) và đọc (read) file JSON để đọc dữ liệu JSON từ file với hàm
import json

with open('info.json', 'r') as f:
  data = json.load(f)

print(type(data))
print(data)
1.json để làm việc với JSON. Chúng ta cần
import json

with open('info.json', 'r') as f:
  data = json.load(f)

print(type(data))
print(data)
0
để sử dụng module này. Nhưng trước hết, chúng ta cần mở (open)đọc (read) file JSON để đọc dữ liệu JSON từ file với hàm
import json

with open('info.json', 'r') as f:
  data = json.load(f)

print(type(data))
print(data)
1
.

import json

with open('info.json', 'r') as f:
  data = json.load(f)

print(type(data))
print(data)
Kết quả

{'domainname': 'gochocit.com', 'active': True, 'numberposts': 360, 'category': ['hardware', 'software', 'network'], 'facebookpage': 'https://www.facebook.com/gochocit/', 'build': {'language': 'php', 'cms': 'wordpress', 'database': 'mysql'}}

Hàm

import json

with open('info.json', 'r') as f:
  data = json.load(f)

print(type(data))
print(data)
1 sẽ phân tích dữ liệu JSON và trả về một dictionary để xử lý được với Python. Lúc này, chúng ta có thể dễ dàng truy cập value của các cặp key – value trong dữ liệu JSON.
import json

with open('info.json', 'r') as f:
  data = json.load(f)

print(type(data))
print(data)
1
sẽ phân tích dữ liệu JSON và trả về một dictionary để xử lý được với Python. Lúc này, chúng ta có thể dễ dàng truy cập value của các cặp key – value trong dữ liệu JSON.

import json

with open('info.json', 'r') as f:
  data = json.load(f)

# access value of key-value
print(data["domainname"])
print(data["active"])
print(data["numberposts"])
print(data["category"])
print(data["facebookpage"])
print(data["build"])

category = data["category"]
build = data["build"]
print("type of category:", type(category))
print("type of build:", type(build))
Kết quả
gochocit.com
True
360
['hardware', 'software', 'network']
https://www.facebook.com/gochocit/
{'language': 'php', 'cms': 'wordpress', 'database': 'mysql'}
type of category: 
type of build: 

Hàm

import json

with open('info.json', 'r') as f:
  data = json.load(f)

print(type(data))
print(data)
1 sẽ phân tích dữ liệu JSON và trả về một dictionary để xử lý được với Python. Lúc này, chúng ta có thể dễ dàng truy cập value của các cặp key – value trong dữ liệu JSON.
import json

with open('info.json', 'r') as f:
  data = json.load(f)

print(type(data))
print(data)
3
để convert sang dictionary trong Python.

import json

data_string = """
{
    "domainname": "gochocit.com",
    "active": true,
    "numberposts": 360,
    "category": ["hardware", "software", "network"],
    "facebookpage": "https://www.facebook.com/gochocit/",
    "build": {
        "language": "php",
        "cms": "wordpress",
        "database": "mysql"
    }
}
"""
#convert json string to dictionary
data = json.loads(data_string)

# access value of key-value
print(data["domainname"])
print(data["active"])
print(data["numberposts"])
print(data["category"])
print(data["facebookpage"])
print(data["build"])

category = data["category"]
build = data["build"]
print("type of category:", type(category))
print("type of build:", type(build))
Kết quả
gochocit.com
True
360 
['hardware', 'software', 'network']
https://www.facebook.com/gochocit/
{'language': 'php', 'cms': 'wordpress', 'database': 'mysql'}
type of category: 
type of build: 

Hàm

import json

with open('info.json', 'r') as f:
  data = json.load(f)

print(type(data))
print(data)
1 sẽ phân tích dữ liệu JSON và trả về một dictionary để xử lý được với Python. Lúc này, chúng ta có thể dễ dàng truy cập value của các cặp key – value trong dữ liệu JSON.value trong JSON sẽ được chuyển đổi thành các data type tương ứng trong Python. Bảng bên dưới tóm tắt data type của value trong JSON sẽ được chuyển thành data type tương ứng trong Python.

Nếu các bạn đang có một JSON string thì cần sử dụng hàm
import json

with open('info.json', 'r') as f:
  data = json.load(f)

print(type(data))
print(data)
3 để convert sang dictionary trong Python.
Khi chuyển đổi (convert) từ JSON string sang dictionary trong Python, chúng ta sẽ có data type của value trong JSON sẽ được chuyển đổi thành các data type tương ứng trong Python. Bảng bên dưới tóm tắt data type của value trong JSON sẽ được chuyển thành data type tương ứng trong Python.
JSONPython
object dict
array list
string str
number (int) int
number (float) float
true True
false False

null

  • None
  • Bảng chuyển đổi data type ở trên cũng được áp dụng tương tự khi chúng ta đọc dữ liệu từ JSON file.
  • Cấu trúc rẽ nhánh if…else trong PHP
  • Kỹ thuật lập trình với mảng 2 chiều trong Java
  • Cách xử lý lỗi (error) trong PHP