【问题标题】:Iterating through Django Rest API and obtaining an error遍历 Django Rest API 并获得错误
【发布时间】:2018-08-29 16:07:55
【问题描述】:

我有以下 Django Rest API 结构:

[
   {
        "title": "Project 1",
        "description": "API projects",
        "members": [
            {
                "latest_activity": "15151020",
                "first_name": "AleX",
                "minutes_last_week": 0,
                "last_name": "Mol",
                "id": 23,
                "minutes_total": 30,
                "minutes_today": 0
            },
            {
                "latest_activity": "1515181664",
                "first_name": "Annie",
                "minutes_last_week": 0,
                "last_name": "Az",
                "id": 47,
                "minutes_total": 20,
                "minutes_today": 0
            }
        ]
    },
    {
        "title": "Project 2",
        "description": "Developer test (internal   project",
        "members": [
            {
                "latest_activity": "1511600",
                "first_name": "Ivan",
                "minutes_last_week": 0,
                "last_name": "XJJNX",
                "id": 18,
                "minutes_total": 10,
                "minutes_today": 0
            },
            {
                "latest_activity": "1516985",
                "first_name": "Lauren",
                "minutes_last_week": 0,
                "last_name": "Gom",
                "id": 39,
                "minutes_total": 560,
                "minutes_today": 0
            }
        ]
    }    
]

我想做的是对这个API进行迭代,得到每个项目中所有的项目名称和一直在工作的开发者,所以我开发了如下函数:

    def execute():
        respuesta = requests.get('http://projd.herokuapp.com/api/v1/activities/?format=json', auth=('xxx','xxx'))
        upresponse = respuesta.json()

        for team in range(0, len(upresponse)-1):upresponse[team]["members"]
            print(team["first_name"]+" "+ team["last_name"] + " has been working in " + team["latest_activity"])

我做错了,我收到以下错误:TypeError: 'int' object is not subscriptable。

我不明白为什么。

【问题讨论】:

  • 为什么你转储然后立即加载?这没有任何意义,你只是回到你开始的地方。你不需要做任何一个
  • @DanielRoseman 你说得对,我已经注意到并修复了它。

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


【解决方案1】:

这应该会有所帮助。

for project in upresponse:    #Iterate over projects
    for team in project["members"]:   #Iterate over members
        print(team["first_name"] + " " + team["last_name"] + " has been working in " + team["latest_activity"])

输出:

AleX Mol has been working in 15151020
Annie Az has been working in 1515181664
Ivan XJJNX has been working in 1511600
Lauren Gom has been working in 1516985

【讨论】:

  • 确实有帮助!例如,如果在我的句子中我想添加项目名称,我该怎么做?因为“title”在成员之外。
  • 您可以将project["title"] 添加到您的打印声明中。
猜你喜欢
  • 1970-01-01
  • 2017-04-25
  • 1970-01-01
  • 2019-06-16
  • 2015-02-14
  • 2011-01-28
  • 2016-01-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多