Load JSON from url trong Python


Qua các bài viết trước ta đã học được cách sử dụng json. Hôm nay ta sẽ get chuỗi json từ url. Ta dùng API của website : https://jsonplaceholder.typicode.com/posts/1. Url này sẽ trả về 1 chuỗi json như sau.

{
  "userId": 1,
  "id": 1,
  "title": "sunt aut facere repellat provident occaecati excepturi optio reprehenderit",
  "body": "quia et suscipit\nsuscipit recusandae consequuntur expedita et cum\nreprehenderit molestiae ut ut quas totam\nnostrum rerum est autem sunt rem eveniet architecto"
}

Để python send HTTP Get ta dùng module "requests". Ta phải cài module này mới sử dụng được.

pip3 install requests

Ta viết đoạn chương trình lấy chuỗi json về và chuyển thành dictionary và lấy ra title.

import requests, json

url = requests.get('https://jsonplaceholder.typicode.com/posts/1')
print(url.text)

# {
#   "userId": 1,
#   "id": 1,
#   "title": "sunt aut facere repellat provident occaecati excepturi optio reprehenderit",
#   "body": "quia et suscipit\nsuscipit recusandae consequuntur expedita et cum\nreprehenderit molestiae ut ut quas totam\nnostrum rerum est autem sunt rem eveniet architecto"
# }

print(type(url.text))  # <class 'str'>

json_data = json.loads(url.text)

print(type(json_data))  # <class 'dict'>

print(json_data['title'])  # sunt aut facere repellat provident occaecati excepturi optio reprehenderit

Để send HTTP Get ta dùng requests.get(..). Giá trị trả về nằm trong url.text . Ta thấy trả về là 1 json string. Ta chuyển chuỗi json này sang dictionary và truy cập vào title. Easy ? ^_^