JSON trong Python


JSON là từ viết tắc của JavaScript Object Notation. JSON là 1 chuỗi text. JSON rất thường được sử dụng để lưu trữ dữ liệu, và còn dùng để gởi hoặc nhận dữ liệu giữa client và server. Ta xem một ví dụ về json.

my_json = '{ "id": "1", "name": "Mr X" }'
print(my_json)  # { "id": "1", "name": "Mr X" }
print(type(my_json)) # <class 'str'>

Ta có 1 chuỗi json. Để chuyển chuỗi json sang dictionary ta làm như sau.

import json

my_json = '{ "id": "1", "name": "Mr X" }'

dict = json.loads(my_json)
print(dict) # {'id': '1', 'name': 'Mr X'}
print(type(dict))  # <class 'dict'>

Đầu tiên ta phải import json và dùng json.loads(..) để chuyển chuỗi json sang dictionary.

Thường data được lưu dưới dạng một list các dictionary.

import json

data = '''  
[
   { "id": "1", "name": "Mr X"},  
   { "id": "2", "name": "Mr D"},  
   { "id": "3", "name": "Mr T"},  
   { "id": "4", "name": "Mr K"} 
]
'''

json_data = json.loads(data)

# return list of dictionary
print(json_data)
# [{'id': '1', 'name': 'Mr X'}, {'id': '2', 'name': 'Mr D'}, {'id':
# '3', 'name': 'Mr T'}, {'id': '4', 'name': 'Mr K'}]

print(len(json_data))  # 4

Ta muốn loop qua một list các phần tử là dictionary. Ta làm như sau.

for item in json_data:
    print("Name: ", item['item'])
    print("Id: ", item['id'])
    
# Name:  Mr X
# Id:  1
# Name:  Mr D
# Id:  2
# Name:  Mr T
# Id:  3
# Name:  Mr K
# Id:  4

Nếu ta muốn ghi json_data ra file .json ta làm như sau.

f = open('save_to_file.json','w')
json.dump(json_data, f, indent=2)

indent = 2 nghĩa là ghi ra file thục vô 2 ký tự. Ta thêm indent cho dễ nhìn. Nếu không có indent thì file ghi ra chỉ trên 1 hàng rất khó xem.

# save_to_file.json

[
  {
    "id": "001",
    "name": "Mr X"
  },
  {
    "id": "002",
    "name": "Mr D"
  },
  {
    "id": "003",
    "name": "Mr T"
  },
  {
    "id": "004",
    "name": "Mr K"
  }
]

Như vậy ta đã biết cách chuyển 1 chuỗi json sang dictionary hoặc 1 list gồm các dictionary rồi nhé. ^_^