-2

好的,所以我正在尝试创建一个简单的东西,它可以告诉我剧院电影的放映时间、电影的名称以及 Python 中的烂番茄评分,但我很难弄清楚如何获得计分。

actorCount = 0
actors = []
criticCount = 0
critics = []
franchiseCount = 0
franchises = []
movieCount = 3
movies = [{'name': 'Frozen II', 'year': 2019, 'url': '/m/frozen_ii', 'image': 'https://resizing.flixster.com/QZg2MuPQoRlWcWYAwufbQBlv-I0=/fit-in/80x80/v1.bTsxMzIwMzIxODtqOzE4Mjg3OzEyMDA7NTQwOzgxMA', 'meterClass': 'certified_fresh', 'meterScore': 76, 'castItems': [{'name': 'Kristen Bell', 'url': '/celebrity/kristin_bell'}, {'name': 'Idina Menzel', 'url': '/celebrity/idina_menzel'}, {'name': 'Josh Gad', 'url': '/celebrity/josh_gad'}], 'subline': 'Kristen Bell, Idina Menzel, Josh Gad, '}]
tvCount = 0
tvSeries = []

我试图从该数据列表中获得的是meterScore,如果您向右滚动足够远,您可以看到它。所有这些数据都是更大字典的一部分,我将其命名为 resultOne,但我认为这并不重要。我只需要一些帮助来弄清楚如何参考并从字典中获取meterScore,这样我就可以将它打印出来,所以当我想看什么电影和他们得到什么评级时,我可以运行这个程序,它会为我。我并没有真正使用字典,但是我用来获取烂番茄数据的库将它创建为这个非常难以引用的字典,因此感谢您的帮助!我没有得到的是,如果我尝试 print(resultOne.movi​​es) 它说这不是属性或影响的东西,即使当我将它放入会打印出键和值的东西中,例如我为获取上面的代码所做的那样,它清楚地表明它是一个键。我也尝试打印(resultOne.movi​​es[meterScore]),但这也没有用。

4

4 回答 4

2

[]字典值是通过它们的键使用, not来查找的.

现在,诀窍在于movieskey 指向一个列表。因此,您需要混合使用两种索引[]:字典索引,即按键索引和列表索引,即在列表中的位置(从 开始0)。

最终,您想要这样做:

score = resultOne['movies'][0]['meterScore']
                  ^         ^           ^    
                  |         |           |
     lookup in outer dict   |           |
                   first item in list   |
                                      lookup in inner dict
于 2019-12-01T03:51:08.457 回答
1

试试这个:

 movies[0]['meterScore']
# 76

于 2019-12-01T03:49:10.903 回答
1

在该片段中,movies是一个包含字典的列表。所以索引列表然后索引字典:

movies[0]['meterScore']

如果movies可能包含多个项目(或零),则对其进行迭代以获取meterScores 的列表:

meter_scores = [movie['meterScore'] for movie in movies]
于 2019-12-01T03:49:44.893 回答
1

为什么不尝试这样的方法从字典中的所有电影中提取每个meterScore:

listOfAllMeterScores = [ movie['meterScore'] for movie in movies ]
于 2019-12-01T03:50:17.023 回答