【发布时间】:2022-01-06 19:53:29
【问题描述】:
这是我的数据结构。我在“衣服列表”中有 3000 个“产品”实例。每个都包含另一个存储评论的字典列表。
clothes_list =
[
{
"ID": "1000201",
"Name": "Clothes Name",
"Price": 24.1,
"Category": "Trousers"
"Reviews": [{'User': 'username1200', 'Review': 'some review', 'Score': 2}
{'User': 'username341', 'Review': 'Some review 2' , 'Score': 4}
{'User': 'username34841', 'Review': 'Some review 3' , 'Score': 2}
]
},
{
"ID": "1003801",
"Name": "Clothes Name",
"Price": 29.1,
"Category": "Trousers"
"Reviews": [{'User': 'username1200', 'Review': 'some review', 'Score': 2}
{'User': 'username341', 'Review': 'Some review 4' , 'Score': 7}
{'User': 'username34841', 'Review': 'Some review 5' , 'Score': 4}
]
},
]
我正在尝试遍历字典中的所有评论并返回由特定用户名撰写的所有评论。
我下面的两次尝试输出相同的错误。
username = "username341"
reviews = next((review for review in clothess_list if review["Reviews"]["User"] == username))]
values = [a_dict["Reviews"][username] for a_dict in clothes_list]
错误
TypeError: 列表索引必须是整数或切片,而不是 str
目标输出
{'User': 'username341', 'Review': 'Some review 2' , 'Score': 4},
{'User': 'username341', 'Review': 'Some review 4' , 'Score': 7}
【问题讨论】:
标签: python python-3.x list dictionary list-comprehension