Extracting Data from JSON
In this assignment you will write a Python program somewhat similar to http://www.py4e.com/code3/json2.pyhttps://www.py4e.com/code3/json2.py?PHPSESSID=7bf693707955dd371e11862307448390The program will prompt for a URL, read the JSON data from that URL using urllib and then parse and extract the comment counts from the JSON data, compute the sum of the numbers in the file and enter the sum below:
This is a sample file where we give you the sum for your testing.
- Sample data: http://py4e-data.dr-chuck.net/comments_42.json
http://py4e-data.dr-chuck.net/comments_42.json(Sum=2553)
You do not need to save these files to your folder since your program will read the data directly from the URL. Note: Each student will have a distinct data url for the assignment - so only use your own data url for analysis.
Data Format
The data consists of a number of names and comment counts in JSON as follows:
{
comments: [
{
name: "Matthias"
count: 97
},
{
name: "Geomer"
count: 97
}
...
]
}
The closest sample code that shows how to parse JSON and extract a list is json2.py. You might also want to look at geoxml.py to see how to prompt for a URL and retrieve data from a URL.
Sample Execution
$ python3 solution.py
Enter location: http://py4e-data.dr-chuck.net/comments_42.json
Retrieving http://py4e-data.dr-chuck.net/comments_42.json
Retrieved 2733 characters
Count: 50
Sum: 2...
One sample code
import urllib.request, urllib.parse, urllib.error
import json
n = 0
s = 0
url = input('Enter location: ')
print('Retrieving', url)
uh = urllib.request.urlopen(url).read().decode()
data = json.loads(uh)
print('Retrieved', len(data), 'characters')
for item in data["comments"]:
n = item["count"]
s += int(n)
n += 1
print('Count: {0}\nSum: {1}'.format(n, s))