You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python获取Twitch符合条件的Minecraft主播display_name与viewers问题

解决Twitch Minecraft直播流筛选问题

嘿,别担心!新手遇到这种小问题太正常了,咱们一步步来解决~

错误原因分析

你之前的代码报错AttributeError: 'str' object has no attribute 'get',是因为data['streams'][0]['channel']是单个主播的频道字典,当你循环它的时候,实际上是在遍历字典的键名(都是字符串类型),所以变量x变成了字符串,自然没有get方法。

正确实现思路

我们需要:

  1. 遍历所有直播流数据(data['streams']列表里的每个元素)
  2. 筛选出两个条件都满足的流:
    • broadcast_platform字段值为live
    • 对应频道的status字段(不区分大小写)包含skyblock或modded关键词
  3. 提取符合条件的流的display_name(来自频道信息)和viewers字段
  4. 按观众数从多到少排序,取前5个

完整代码实现(带注释)

# 定义我们要匹配的关键词
target_keywords = ['skyblock', 'modded']

# 收集所有符合条件的直播流数据
qualified_streams = []
for stream in data['streams']:
    # 检查直播状态是否为live
    if stream.get('broadcast_platform') != 'live':
        continue
    
    # 获取频道的直播状态文本,转成小写,避免大小写匹配问题
    channel_status = stream['channel'].get('status', '').lower()
    
    # 检查是否包含目标关键词
    if any(keyword in channel_status for keyword in target_keywords):
        # 提取需要的字段并添加到列表
        qualified_streams.append({
            'display_name': stream['channel']['display_name'],
            'viewers': stream['viewers']
        })

# 按观众数从多到少排序
qualified_streams.sort(key=lambda item: item['viewers'], reverse=True)

# 取排名前5的主播
top5_streams = qualified_streams[:5]

# 输出结果示例
for rank, stream in enumerate(top5_streams, start=1):
    print(f"第{rank}名: {stream['display_name']} - 观众数: {stream['viewers']}")

简洁版(列表推导式+排序)

如果你喜欢更紧凑的写法,也可以用拆分后的多行结构完成(更易读):

target_keywords = ['skyblock', 'modded']

top5_streams = sorted(
    [
        {
            'display_name': s['channel']['display_name'],
            'viewers': s['viewers']
        }
        for s in data['streams']
        # 同时满足两个筛选条件
        if s.get('broadcast_platform') == 'live'
        and any(k in s['channel'].get('status', '').lower() for k in target_keywords)
    ],
    key=lambda x: x['viewers'],
    reverse=True
)[:5]

这样就能完美实现你的需求啦!刚开始处理JSON嵌套数据很容易搞混遍历的层级,多写几次就熟练了😉

内容的提问来源于stack exchange,提问作者oh hey

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 07:28:57