I am new in django rest api framework and using get i am fetching the a json array whose api is this https://api.coursera.org/api/courses.v1?q=search&query=machine+learning and i am not able to parse it.Actually i want to store all the names and send them to .html file .I have used this code but didnot worked for me.
req = requests.get('https://api.coursera.org/api/courses.v1?q=search& query=machine+learning') jsonList = [] jsonList.append(req.json()) print(jsonList[0]) userData = {} for value in jsonList[0]: parsedData.append(value["name"]) print(value["name"]) return render(request, 'app/profile.html', {'data': parsedData})
Advertisement
Answer
This actually has nothing to do with Django.
The way to get to the name
attribute inside elements
(there are actually many elements, each one has a ‘name`):
import requests import json req = requests.get('https://api.coursera.org/api/courses.v1?q=search&query = machine + learning') json_data = json.loads(req.text) for element in json_data['elements']: print(element['name']) >> Speak English Professionally: In Person, Online & On the Phone Machine Learning Learning How to Learn: Powerful mental tools to help you master tough subjects . .
Update:
To display the names in a view:
Considering that you have a very basic template:
{% for name in names %} <p>{{ name }}</p> {% endfor %}
Inside your view, considering you already have the above code, and you stored all the names in a list called names
:
return render(request, 'app/profile.html', context={'names': names}, status=200) # it's always a good habit to return an HTTP status code