编程语言
首页 > 编程语言> > python – 难以按人口统计提取IMDb评级(使用IMDbpy)

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