How would I parse a json api response with python? I currently have this:
import urllib.request import json  url = 'https://hacker-news.firebaseio.com/v0/topstories.json?print=pretty'  def response(url):     with urllib.request.urlopen(url) as response:         return response.read()  res = response(url) print(json.loads(res))   I'm getting this error: TypeError: the JSON object must be str, not 'bytes'
What is the pythonic way to deal with json apis?
Version 1: (do a pip install requests before running the script)
import requests r = requests.get(url='https://hacker-news.firebaseio.com/v0/topstories.json?print=pretty') print(r.json())   Version 2: (do a pip install wget before running the script)
import wget  fs = wget.download(url='https://hacker-news.firebaseio.com/v0/topstories.json?print=pretty') with open(fs, 'r') as f:     content = f.read() print(content) 
                        you can use standard library python3:
import urllib.request import json url = 'http://www.reddit.com/r/all/top/.json' req = urllib.request.Request(url)  ##parsing response r = urllib.request.urlopen(req).read() cont = json.loads(r.decode('utf-8')) counter = 0  ##parcing json for item in cont['data']['children']:     counter += 1     print("Title:", item['data']['title'], "\nComments:", item['data']['num_comments'])     print("----")  ##print formated #print (json.dumps(cont, indent=4, sort_keys=True)) print("Number of titles: ", counter)   output will be like this one:
... Title: Maybe we shouldn't let grandma decide things anymore.   Comments: 2018 ----  Title: Carrie Fisher and Her Stunt Double Sunbathing on the Set of Return of The Jedi, 1982   Comments: 880 ----  Title: fidget spinner   Comments: 1537 ----  Number of titles:  25 
                        If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With