我想从字典列表中获得随机选择的键值,但我得到了一个类型错误.(注意列表很长,所以很难添加索引) &g


def data_change(account):
data_name = data["name"]
data_desc = data["description"]
data_country = data["country"]
return f"{data_name}, is a {data_desc}, from {data_country}"
print(f"option A : {data_change(data_a)}") 

上面的代码是我要处理的随机数据显示的数据。下面的列表字典是前两个示例数据

data = [
{
'name': 'Instagram',
'follower_count': 346,
'description': 'Social media platform',
'country': 'United States'
},
{
'name': 'Cristiano Ronaldo',
'follower_count': 215,
'description': 'Footballer',
'country': 'Portugal'
}]

,错误显示为TypeError:列表索引必须是整数或切片,而不是str

行:data_name = data["name"]

是的,我搜索了许多解决方案,但都没有解决我的问题。

like from this link

https://www.learndatasci.com/solutions/python-typeerror-list-indices-must-be-integers-or-slices-not-str/: ~:文本= % 20类型% 20错误% 20发生% 20时,使用% 20 % 20 int() % 20函数。

如果你想要完整的文件的代码问我ok。这是一项正在进行的工作

Data是一个列表而不是字典,所以您可以使用从零开始的索引来枚举列表中的项。您可以通过如下的for循环枚举条目:

def data_change(data):
ans = []
for account in data:
data_name = account["name"]
data_desc = account["description"]
data_country = account["country"]
ans.append(f"{data_name}, is a {data_desc}, from {data_country}")
return "n".join(ans)

变量data是一个包含两个字典的列表。
使用data_name = data["name"],您尝试访问此列表,但name不是整数,因此您得到TypeError
您的列表只有两个条目,因此您可以使用data[0]["name"]data[1]["name"]访问它。

编辑:正如Mazimia所说,迭代列表中的字典似乎是个好主意。

最新更新