python - Python - 获取其中一项的最高值的字典(json列表)的索引?
问题描述
我使用 TMDB api [tmdbsimple https://pypi.org/project/tmdbsimple/] 它为我提供了一个 json,我想在其中提取 'dict posters' 项目的 'file_path' 数量最多'vote_count',我该怎么做?
import tmdbsimple as tmdb
myKey = '****' #api key https://developers.themoviedb.org/3/getting-started/introduction
tmdb.API_KEY = myKey
tvg_tmdbid = '67158'
lst_posters_mylang = tmdb.TV(tvg_tmdbid).images(language='pt')['posters']
if lst_posters_mylang != []:
item = ???
posterpath = lst_posters_mylang[item]['file_path']
注意:修复了变量“lst_posters_mylang”的打印
print(lst_posters_mylang) 返回这个 json:
[
{'aspect_ratio': 0.6666666666666666, 'file_path': '/3o7f2Xjwl5hcoiioR9eGdD9ezHt.jpg', 'height': 2160, 'iso_639_1': 'pt', 'vote_average': 5.312, 'vote_count': 1, 'width': 1440
},
{'aspect_ratio': 0.6666666666666666, 'file_path': '/cZy35eGPBcXOagv3ujmfGVm4U1C.jpg', 'height': 2160, 'iso_639_1': 'pt', 'vote_average': 0.0, 'vote_count': 0, 'width': 1440
},
{'aspect_ratio': 0.6666666666666666, 'file_path': '/46CmxozfvZSpeg4cEZ86Sm6QOXT.jpg', 'height': 1500, 'iso_639_1': 'pt', 'vote_average': 0.0, 'vote_count': 0, 'width': 1000
},
{'aspect_ratio': 0.6666666666666666, 'file_path': '/oWr83fLF26UUn6tPKNMk2U7fqLr.jpg', 'height': 750, 'iso_639_1': 'pt', 'vote_average': 0.0, 'vote_count': 0, 'width': 500
},
{'aspect_ratio': 0.66625, 'file_path': '/22YerMIPRTPe4jG1A2a9jgpBWxo.jpg', 'height': 800, 'iso_639_1': 'pt', 'vote_average': 0.0, 'vote_count': 0, 'width': 533
}
]
在这种情况下,“海报”的项目 0 具有最高的“投票计数”= 1,我如何通过 python 获得这个“海报”项目的价值?只有这样我才能得到'file_path'值:
项目 = 0
海报路径 = lstposters_mylang[项目]['file_path']
海报路径----'/3o7f2Xjwl5hcoiioR9eGdD9ezHt.jpg'
解决方案
使用 python 内置的sorted,您可以通过参数定义自己的排序标准key
。
默认情况下它将按升序排序,因此您需要设置reverse=True
.
然后您可以从列表中获取第一项以获得最大值。
best_poster = sorted(lst_posters_mylang['posters'], key=lambda bd:bd["vote_count"], reverse=True)[0]
旁注:空数组是错误的,所以你可以这样做if lst_posters_mylang:
推荐阅读
- python - 在电子邮件正文中使用 HTML 发送邮件枪发送 API 的问题
- c# - 如何为 WPF 实现可选列表
- leaflet - 在 Leaflet 中确定位置属性(例如土地或水)
- git - 搞砸了git树,如何解决?
- java - 在 RecyclerView 中打开不同的网站
- javascript - VueJs 超出最大调用堆栈大小
- return - 返回true时反应函数错误
- python - kivy 弹出窗口中的文本在弹出窗口之外
- javascript - JavaScript 中分支重置组的替代方案?
- firebase - 带有 Firebase Auth 的 Flutter Web 不能在本地工作,但在部署在云中时可以工作