Consume-Rest-Api

Sat 17 May 2025

import requests
import json
response = requests.get("https://randomuser.me/api/")
response_json = response.json()
print(response_json)
{'results': [{'gender': 'female', 'name': {'title': 'Ms', 'first': 'Mia', 'last': 'Walker'}, 'location': {'street': {'number': 8562, 'name': 'Port Hills Road'}, 'city': 'Hamilton', 'state': 'Waikato', 'country': 'New Zealand', 'postcode': 45938, 'coordinates': {'latitude': '54.8821', 'longitude': '15.6902'}, 'timezone': {'offset': '+4:30', 'description': 'Kabul'}}, 'email': 'mia.walker@example.com', 'login': {'uuid': 'acdada4d-6fc5-442c-be57-b8db60d5ed2b', 'username': 'heavypeacock555', 'password': 'fresh', 'salt': '7WvriXB4', 'md5': 'f5bbe66407188487fcb9e3255bb161e2', 'sha1': '421d5105c937de66947e9de0ee491df3cfbd720e', 'sha256': 'fe1fca89f0b9348f8a4be3540377b777eef406e3ffd8668694c48223b38a04e7'}, 'dob': {'date': '1992-12-04T19:33:10.191Z', 'age': 32}, 'registered': {'date': '2016-12-12T05:33:38.658Z', 'age': 8}, 'phone': '(083)-981-7119', 'cell': '(233)-717-4000', 'id': {'name': '', 'value': None}, 'picture': {'large': 'https://randomuser.me/api/portraits/women/38.jpg', 'medium': 'https://randomuser.me/api/portraits/med/women/38.jpg', 'thumbnail': 'https://randomuser.me/api/portraits/thumb/women/38.jpg'}, 'nat': 'NZ'}], 'info': {'seed': 'ce107bb801696e75', 'results': 1, 'page': 1, 'version': '1.4'}}
# response_json

print(json.dumps(response_json, indent=4))

result_first_item = response_json["results"][0]
result_first_item
{'gender': 'male',
 'name': {'title': 'Mr', 'first': 'Willie', 'last': 'Chambers'},
 'location': {'street': {'number': 5013, 'name': 'The Green'},
  'city': 'Ely',
  'state': 'West Glamorgan',
  'country': 'United Kingdom',
  'postcode': 'D9 8SX',
  'coordinates': {'latitude': '-10.6600', 'longitude': '-173.3726'},
  'timezone': {'offset': '+7:00', 'description': 'Bangkok, Hanoi, Jakarta'}},
 'email': 'willie.chambers@example.com',
 'login': {'uuid': 'f2c8e5e0-ec49-4d8f-998c-7a5e952f9982',
  'username': 'orangerabbit542',
  'password': 'momo',
  'salt': '5VqLYF7g',
  'md5': 'b36751c710160b6152eba752a957c785',
  'sha1': '63effd9e597cbbc9da0909ddd35588a826aab7f1',
  'sha256': '88c465cf36822c116ebefdfa11d992f092e773b92d9a33a368a8ff18b1096da0'},
 'dob': {'date': '1980-10-21T11:45:31.984Z', 'age': 44},
 'registered': {'date': '2009-07-22T12:49:50.771Z', 'age': 15},
 'phone': '017683 28131',
 'cell': '07489 074118',
 'id': {'name': 'NINO', 'value': 'OW 22 16 91 P'},
 'picture': {'large': 'https://randomuser.me/api/portraits/men/91.jpg',
  'medium': 'https://randomuser.me/api/portraits/med/men/91.jpg',
  'thumbnail': 'https://randomuser.me/api/portraits/thumb/men/91.jpg'},
 'nat': 'GB'}
user_last_name = result_first_item.get("name", {}).get("last", "Doe")
user_last_name
'Chambers'
user_gender = result_first_item.get("gender", "NA")
user_gender
'male'
postcode = result_first_item.get("location", {}).get("postcode", "NA")
postcode
'D9 8SX'
user_email = result_first_item.get("email", "NA")
user_email
'willie.chambers@example.com'
user_medium_pic = result_first_item.get("picture", {}).get("medium", "NA")
user_medium_pic
'https://randomuser.me/api/portraits/med/men/91.jpg'
result_dict = {
    "last_name" : user_last_name,
    "gender" : user_gender,
    "postcode" : postcode,
    "email" : user_email,
    "picture" : user_medium_pic
}
result_dict
{'last_name': 'Chambers',
 'gender': 'male',
 'postcode': 'D9 8SX',
 'email': 'willie.chambers@example.com',
 'picture': 'https://randomuser.me/api/portraits/med/men/91.jpg'}

def get_user_details(response_json):

    result_first_item = response_json["results"][0]

    user_last_name = result_first_item.get("name", {}).get("last", "Doe")
    user_gender = result_first_item.get("gender", "NA")
    postcode = result_first_item.get("location", {}).get("postcode", "NA")
    user_email = result_first_item.get("email", "NA")
    user_medium_pic = result_first_item.get("picture", {}).get("medium", "NA")

    result1_dict = {
        "last_name" : user_last_name,
        "gender" : user_gender,
        "postcode" : postcode,
        "email" : user_email,
        "picture" : user_medium_pic
    }

    return result1_dict
res1 = requests.get("https://randomuser.me/api/")
# res1.json()
get_user_details(res1.json())
{'last_name': 'Kennedy',
 'gender': 'female',
 'postcode': 83714,
 'email': 'louise.kennedy@example.com',
 'picture': 'https://randomuser.me/api/portraits/med/women/29.jpg'}



Score: 25

Category: basics