当前位置: 首页 > 知识库问答 >
问题:

Python JSON TypeError:列表索引必须是整数或切片,而不是str

孙洋
2023-03-14

我目前正试图解析get请求响应中的一些数据,但我一直遇到这样的错误:“TypeError:列表索引必须是整数或片,而不是str”

如果有人能帮我解决我想解决的问题,那就太好了。提前非常感谢你。

import requests
import json


class userList(APIView):
    def get(self,request,format=None):

        user_data = []
        url = 'https://reqres.in/api/users?page=1'

        try:
            r = requests.get(url).json()
            user = {
                'id': r['data']['id'],
                'email': r['data']['email']
            }
            user_data.append(user)
            return Response({"user_data":user_data}, status=status.HTTP_200_OK)


{
data:{

0:{
'id'    : 1
'email' :   "george.bluth@reqres.in"
'first_name' :  "George"
'last_name' :   "Bluth"
'avatar' :  "https://s3.amazonaws.com/uifaces/faces/twitter/calebogden/128.jpg"
}

1:{
'id'    : 2
'email' :   "apdas@reqres.in"
'first_name' :  "apdas"
'last_name' :   "loanz"
'avatar' :  "https://s3.amazonaws.com/uifaces/faces/twitter/calebogden/128.jpg"
}

2:{
'id'    : 3
'email' :   "joan@reqres.in"
'first_name' :  "joan"
'last_name' :   "homli"
'avatar' :  "https://s3.amazonaws.com/uifaces/faces/twitter/calebogden/128.jpg"
}
}
}

共有1个答案

裴泰平
2023-03-14

试试这个:

user_data = [{'id': x['id'], 'email': x['email']} for x in r['data']]

输出:

[{'id': 1, 'email': 'george.bluth@reqres.in'}, {'id': 2, 'email': 'apdas@reqres.in'}, {'id': 3, 'email': 'joan@reqres.in'}]
 类似资料:
  • 问题内容: 我有两个列表,我想合并到一个数组中,最后将其放入一个csv文件中。我是使用Python数组的新手,但我不明白如何避免出现此错误: 并得到: 我的计数工作如何? 问题答案: 首先,应为整数而不是字符串: 其次,您的循环应使用构造: 第三,将自动增加,因此删除以下行: 注意,给定两个列表的长度相同,它们也可以只是两个列表:

  • 问题内容: 我目前正在尝试从发布请求响应中解析一些数据,并且不断收到此错误:“ TypeError:列表索引必须是整数或切片,而不是str” Python代码 JSON回应 我做了类似的代码,但这是一个get请求,一切都很好。 问题答案: 是一个数组,因此您不需要int,可以在after之后添加,它应该可以工作。然后,您可以在中引用对象内的键。

  • 问题内容: 我的json文件看起来像这样,我正在尝试在for循环中访问元素。 我这样做是这样的: 但是我收到错误消息:“ TypeError:列表索引必须是整数,而不是dict”。我是python(和json)的新手。有人可以建议我要去哪里错吗? 问题答案: 您遍历该 值 通过引用的名单, 没有 指标。 只需 直接 使用这些值(字典): 您可能想给它一个更有意义的循环名称:

  • 我的输入是这样的,我试图从a点开始和结束点来控制布线-- 我试图得到一个有容量、距离和时间窗口限制的路由,在这个级别上,如果我执行代码,我会看到下面的错误: “”TypeError:列表索引必须是整数或片,而不是列表“” 我的代码是: 当我执行代码时,它会告诉我: 有谁能告诉我问题出在哪里,出在哪里,因为我试图将“depot\u idx”制作成数组,但没有成功?

  • 我一直得到错误: TypeError:列表索引必须是整数或片,而不是元组 尽管如此,就我有限的理解而言,列表索引是一个整数。 此代码: 给我上面的TypeError。 虽然当我这样做的时候: 这是怎么回事?

  • 所以我对python编程相当陌生。我在尝试执行程序时面临TypeError:错误在第13行, TypeError:列表索引必须是整数或片,而不是str