1

这在查找 youtube 视频的平均评分和评分者人数时非常有效。

#!/usr/bin/python

import sys
from gdata.youtube.service import YouTubeService

yt = YouTubeService()
entry = yt.GetYouTubeVideoEntry(video_id=sys.argv[1])
dir(entry.rating)
['FindExtensions', 'ToString', '_AddMembersToElementTree', '_BecomeChildElement', '_ConvertElementAttributeToMember', '_ConvertElementTreeToMember', '_HarvestElementTree', '_ToElementTree', '__class__', '__delattr__', '__dict__', '__doc__', '__format__', '__getattribute__', '__hash__', '__init__', '__module__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', '_attributes', '_children', '_namespace', '_tag', 'average', 'extension_attributes', 'extension_elements', 'max', 'min', 'num_raters', 'text']
print entry.rating.average
print entry.rating.num_raters

但是当视频没有评分时,它会引发错误。

AttributeError:“NoneType”对象没有“平均”属性

有什么建议么?谢谢。

4

1 回答 1

1

gd:rating 已弃用 http://code.google.com/apis/youtube/2.0/reference.html#youtube_data_api_tag_gd:rating

无论如何,您应该检查是否存在 raiting

if entry.rating:
    print entry.rating.average
    print entry.rating.num_raters
else:
    print 'entry has no rating'
于 2011-11-11T23:36:36.560 回答