Python如何从无外层标识的JSON列表中提取指定键的所有对应值
问题解决说明
报错原因
你调用接口返回的result是列表类型,列表仅支持整数索引或切片取值,你参考的旧方案适配顶层为字典的JSON结构,和你的数据结构不匹配,因此触发TypeError: list indices must be integers or slices, not str报错。
正确实现代码
单键值提取函数
你可以直接遍历列表中的每个字典元素,提取对应键的值:
def get_val(key): # 若要避免部分条目无对应键的报错,可改为 entry.get(key),无对应键时会返回None return [entry[key] for entry in result] # 调用示例 all_retweet = get_val('retweet_count') all_favorite = get_val('favorite_count') print(all_retweet) print(all_favorite)
一次性提取两个键的对应值
如果需要同时拿转发数和点赞数,可以直接生成对应关系的列表:
# 每个元素为 (转发数, 点赞数) 格式的元组 all_stats = [(item['retweet_count'], item['favorite_count']) for item in result] # 批量输出示例 for idx, (ret, fav) in enumerate(all_stats): print(f"第{idx+1}条内容:转发{ret}次,点赞{fav}次")
以上方法可以自动遍历所有返回的条目,不需要手动逐个索引取值,适配任意长度的返回数据。
内容的提问来源于stack exchange,提问作者VRapport
相关产品推荐
相关产品推荐

