Start learning free

LESSON 3 OF 188 · BACKEND: HOW THE WEB WORKS

Read a JSON Answer

Practice

Most APIs don't answer with sentences but with JSON, the text format they use to send data. It looks like Python's lists and dictionaries, but it arrives as text: response.text is only a string.

response.json() reads that text and builds the real Python values it describes: a JSON […] becomes a list, and a JSON {…} becomes a dictionary. For a weather API whose body is {"city": "Paris", "temp": 18}:

weather = response.json()
print(weather["city"], weather["temp"])   # Paris 18

The supplier's price list is at the path /prices. Its body is a list of products, and each product is a dictionary with an "id", a "name" and a "price". Your script must print:

5 products
{'id': 1, 'name': 'Mug', 'price': 5}
Mug costs 5
Notebook costs 3
Lamp costs 14
Pen costs 1
Plant costs 6

Your task: request /prices, turn the body into a list with response.json() and keep it in products, print how many products there are and the first one, then loop over the list and print each product's name and price.


Assignment
Follow the Coding Tutorial to read the supplier's price list as JSON and print every product's name and price.


Hint
products is a list of dictionaries: len counts its items, products[0] is the first dictionary, and inside the loop each product is read by key, with the key's name in quotes.


STEP 1 OF 6
    Ctrl + Enter to check