使用pandas归一化嵌套JSON时遇TypeError问题求助
对话数据归一化的TypeError问题解决
问题背景
需要将包含多页对话数据的all_data归一化为单表,保留created_at、updated_at、id、用户name及tags等标识字段,但运行归一化代码时触发错误:
TypeError: list indices must be integers or slices, not dict
错误原因
遍历all_data时错误地将字典作为列表索引使用。all_data是由多个页组成的列表,每个页本身是包含对话条目的列表,错误代码中试图用页对象(字典)去索引列表,导致类型不匹配。
错误代码示例
normalized_data = [] for page in all_data: # 错误:用字典page作为列表all_data的索引 for item in all_data[page]: normalized_item = { 'id': item['id'], 'created_at': item['created_at'], 'updated_at': item['updated_at'], 'user_name': item['user']['name'], 'tags': item['tags'] } normalized_data.append(normalized_item)
修正后的代码
normalized_data = [] # 遍历all_data中的每一页(每页是对话条目列表) for page in all_data: # 直接遍历当前页的对话条目 for item in page: normalized_item = { 'id': item['id'], 'created_at': item['created_at'], 'updated_at': item['updated_at'], 'user_name': item['user']['name'], 'tags': item['tags'] } normalized_data.append(normalized_item)
关键修正说明
- 移除错误的列表索引操作
all_data[page],直接遍历page本身(因为page就是当前页的对话条目列表) - 确保遍历逻辑符合
all_data的嵌套结构:外层是页的列表,内层是每页的对话条目列表
内容的提问来源于stack exchange,提问作者lpca
相关产品推荐
相关产品推荐

