python – 难以按人口统计提取IMDb评级(使用IMDbpy)
作者:互联网
我想按人口统计(性别,年龄组)收集IMDb评级详情.
当我尝试在imdbpy中使用get_movie_vote_details模块时,我的输出为空.
这是我的代码:
import imdb
i = imdb.IMDb(accessSystem='http')
movie = i.get_movie('0780504')
print(movie)
votes = i.get_movie_vote_details('0780504')
print(votes)
这是输出:
打印(M)
Drive
打印(票)
{‘charactersRefs’: {}, ‘data’: {}, ‘namesRefs’: {}, ‘titlesRefs’: {}}
正如你所看到的,“投票”输出有点偏.有没有办法可以使用imdbpy提取评级详细信息?
解决方法:
您不应该直接调用.get_movie_XYZ(…)方法:它们在内部用于使用IMDb().update(…)方法更新Movie实例.
例如:
import imdb
i = imdb.IMDb(accessSystem='http')
movie = i.get_movie('0780504')
i.update(movie, 'vote details')
print(movie.get('mean and median')
如果您想知道所有可用的信息集,请调用i.get_movie_infoset();要查看更新给定信息集时添加了Movie实例的哪些键,请使用movie.infoset2key映射.
有关更多信息,请参阅official documentation.
关于数据的格式,这段代码:
from imdb import IMDb
ia = IMDb()
m = ia.get_movie('0780504', 'vote details')
print('median', m.get('median'))
print('arithmetic mean', m.get('arithmetic mean'))
print('number of votes', m.get('number of votes'))
print('demographics', m.get('demographics'))
会输出这样的东西:
中位数8
算术平均值7.8
票数{1:8626,2:4135,3:5762,4:9264,5:17595,6:39440,7:84746,8:133331,9:98870,10:75737}
人口统计学”imdb staff’:{‘rating’:7.8,’votes’:36},’年龄未满18岁’:{‘评级’:8.5,’投票’:844},’非美国用户’:{‘评级’:7.8,’投票’:250586},’前1000名选民’:{‘评级’:7.6,’投票’:739},’男性45岁以上’:{‘评级’:7.4,’投票’:24213 },’45岁以上’:{‘评分’:7.4,’投票’:28779},’年龄18 29’:{‘评分’:7.9,’投票’:183217},’us users’:{‘评分’:8.0,’投票’:71299},’年龄30 44’:{‘评级’:7.7,’投票’:181063},’年龄在18岁以下的男性’:{‘评级’:8.5,’投票’:705 ‘,”评分’:7.8,’投票’:152988},’18岁以下的女性’:{‘评分’:7.9,’投票’:133},’18岁男性’ :{‘评级’:8.0,’投票’:148749},’年龄在45岁以上的女性’:{‘评分’:7.4,’投票’:4004},’imdb users’:{‘评分’:7.8,’投票’:477506},’女性年龄在18岁29岁’:{‘评分’:7.6,’投票’:32575},’女性’:{‘评分’:7.6,’投票’:65217},’男性’:{‘评分’:7.9,’投票’:341617},’女性年龄为30 44’:{‘评分’:7.5,’投票’:25465}}
标签:python,imdb,imdbpy 来源: https://codeday.me/bug/20190701/1348444.html