Lab 11: Data Structures

This lab will give you practice using data structures.

Part 1: An Address Book

Use data structures to do real work.

1.1. An Address Book

There is a file called address_book.txt it contains the following lines:

Mike, 555-555-1111, 555-555-1112, mike@example.com
Sally, 555-555-1113, 555-555-1114, sally@example.com
Lucia, 555-555-1115, 555-555-1116, lucia@example.com
Mo, 555-555-1117, 555-555-1118, mo@example.com

Read the file, line by line, and insert them into a dictionary called files/address_book. Each entry in the dictionary should be structured like the example below:

address_book = {
    'Mike' : {
        'Mobile' : '555-555-1111',
        'Office' : '555-555-1112',
        'Email'  : 'mike@example.com',
    },
}
[ ]:

1.2. Looping Over Data

Write a for loop that prints everyone’s mobile number formatted like this:

Contact: Mike Mobile: 555-555-1111
[ ]:

1.3. Finding Contacts

Write a program that uses input to ask the user for the name of a contact. If the contact exists in address_book print the contact information, otherwise print “Not Found”

[ ]:

Part 2: Wikipedia

In this part you’ll use Wikipedia’s API to fetch summary information about topics of your choice. You may have noticed that APIs return data with an interesting structure. You’ll have to navigate the structure by using the index operator [ ].

2.1. Get the Summary

Here’s a function that fetches a data structure from Wikipedia’s API:

[ ]:
import json
import requests
import urllib

def wiki_fetch(title) :
    """Queries Wikipeida using the JSON API and returns the resulting page.

    Arguments:
        title - (string) The title of the page.

    Returns:
        The JSON response converted to a dictionary.
    """
    safe_title = urllib.parse.quote(title)
    url = f'https://en.wikipedia.org/w/api.php?format=json&action=query&prop=extracts&exintro=&explaintext=&titles={safe_title}'
    response = requests.get(url)
    data = json.loads(response.text)
    return data

Use the wiki_fetch function to print only the summary for the article on Python (programming language)

[ ]:

2.2. Get the Summary for Any Article

Write a program that uses input to prompt for the name of a Wikipedia article then prints the summary of the article.

[ ]:

2.3. Handle Errors

Update the program from 2.2. to print the words “Not Found” when the user types an article that does not have a summary (or doesn’t exist).

[ ]: