如何解析django中的json数组

时间:2016-05-08 12:49:19

标签: python json django api django-rest-framework

我是django rest api框架中的新手,并且使用get我正在获取其api为此https://api.coursera.org/api/courses.v1?q=search&query=machine+learning的json数组,并且我无法解析它。实际上我想存储所有名称并发送它们到.html文件。我使用过此代码,但对我没用。

    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})

1 个答案:

答案 0 :(得分:4)

这实际上与Django无关。

获取nameelements属性的方式(实际上有很多元素,每个元素都有'名称'):

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
   .
   .

更新

要在视图中显示名称:

考虑到你有一个非常基本的模板:

{% for name in names %}
    <p>{{ name }}</p>
{% endfor %}

在您的视图中,考虑到您已经拥有上述代码,并将所有名称存储在名为names的列表中:

return render(request, 'app/profile.html', context={'names': names}, status=200)  
# it's always a good habit to return an HTTP status code