接收列表索引必须是整数或切片错误

时间:2018-02-02 18:26:01

标签: python

我是学习python并尝试计算某些东西的新手。我得到一个TypeError,任何帮助都会很棒:列表索引必须是整数或切片,而不是str

    names = ['Alex', 'Ari','Dylan', 'Parker', 'Quinn', 'Ethan', 'Nick', 'Sarah', 'Christy']

import requests

name_check = {}
name_check = []
test = {}
new = {}

for index in range(len(names)):
    name_check['name'] = names[index]

    name_test = requests.get('https://api.genderize.io/',params=name_request).json()

    new = {}
    new['gender'] = name_test['gender']
    new['probability'] = name_test['probability']
    new['count'] = name_test['count']

    test[name[index]] = new

test 

3 个答案:

答案 0 :(得分:1)

name_check = {}
name_check = []

您正在将name_check重新定义为列表,因此name_check['name']将无效。你应该删除第二行。

答案 1 :(得分:1)

这种使用列表是错误的。 如您所见,name_check['name']是一个错误的语句,因为您不能将字符串作为列表的索引使用。

您可以从以下链接中了解如何正确使用列表:

https://www.tutorialspoint.com/python/python_lists.htm

我希望它有所帮助。

答案 2 :(得分:1)

TypeError:列表索引必须是整数,而不是str

因为在第11行

name_check [' name'] =姓名[index]#在第11行

正在创建一个问题。如第6行和第7行所示,存在相互矛盾的定义

name_check = {} #First initializing it as dictionary
name_check = [] # Then naming same as List

所以第11行将name_check解释为列表而不是字典。 因此,当你试图把名字命名为'在name_check变量中键入一个异常,说明它预期整数而不是字符串'