【问题标题】:How to ignore videos with like count disabled while using YouTube Data API V3如何在使用 YouTube Data API V3 时忽略禁用点赞数的视频
【发布时间】:2021-11-03 17:48:18
【问题描述】:

在 YouTube 搜索结果中,某些视频的 被隐藏了。我的代码在到达这些视频时失败:

KeyError : 'likeCount'.

有没有办法忽略此类视频并继续我的迭代?

request = youtube.videos().list(part = "snippet,statistics", id = LIST)
A = request.execute()
for j in range(len(A['items'])):
  Data.append({
    'Views': A['items'][j]['statistics']['viewCount'],
    'Likes': A['items'][j]['statistics']['likeCount'],
    'Dislikes': A['items'][i]['statistics']['dislikeCount']
  })

【问题讨论】:

  • 'Likes': A['items'][j]['statistics'].get('likeCount')?
  • @Joachim Isaksson 谢谢 :)

标签: python-3.x youtube-api youtube-data-api


【解决方案1】:

我会重写你的原始代码如下:

request = youtube.videos().list(
  part = "snippet,statistics",
  id = LIST
)
response = request.execute()
for item in response.get('items', []):
  stat = item['statistics']
  # items without 'like' and 'dislike'
  # count get those counts to be 0
  Data.append({
    'Views': stat.get('viewCount', 0),
    'Likes': stat.get('likeCount', 0),
    'Dislikes': stat.get('dislikeCount', 0)
  })

请注意,从API获取的响应的statistics属性下的所有统计数据都是通过get方法访问的,这样,如果相应的属性不存在,则其关联的值是@ 987654324@.

上面的for 循环的另一种可能性如下所示:

for item in response.get('items', []):
  stat = item['statistics']
  # items without 'like' and 'dislike'
  # counts are being ignored
  if stat.get('likeCount') is None or \
     stat.get('dislikeCount') is None:
       continue
  Data.append({
    'Views': stat['viewCount'],
    'Likes': stat['likeCount'],
    'Dislikes': stat['dislikeCount']
  })

【讨论】:

    猜你喜欢
    • 2012-11-07
    • 2014-08-09
    • 2013-06-12
    • 2015-08-10
    • 1970-01-01
    • 2018-08-24
    • 2013-01-05
    • 2019-07-27
    • 2018-06-28
    相关资源
    最近更新 更多