我是学习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
答案 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变量中键入一个异常,说明它预期整数而不是字符串'