我有一个包含信息的JSON文件,您可以在附件中看到: Json File
我需要一些帮助,为每个导演创建一个“流派词典”,如下所示: {GenreName:Number} 其中“Number”对应于所属的电影数量导演“创造”的那种类型。
E.g。检查“Sidney Lumet”字典应该是这样的: {u'Drama':2,u'War':1,u'Adventure':1,u'Thriller':2,u'Crime':1}
因为在文件中你可以阅读:
"Before the Devil Knows You're Dead;2007": {
"DIRECTORS": [
"Sidney Lumet"
],
"GENRES": [
"Crime",
"Drama",
"Thriller"
"Fail-Safe;1964": {
"DIRECTORS": [
"Sidney Lumet"
],
"GENRES": [
"Adventure",
"Drama",
"Thriller",
"War"
我在标题中错误地解释了我需要的东西。 我的问题不是如何检索信息(我知道json模块,我知道如何访问它的元素),但我需要帮助为每个导演创建特定的字典。
答案 0 :(得分:2)
这不是python而是算法问题。所有与pyhton相关的都是
with open('file.json') as f:
data = json.load(f)
然后,您需要浏览所有电影并计算每个类型,例如:
directors_dict = {}
for film_name, film in data.iteritems():
for dir in film['DIRECTORS']:
if not dir in directors_dict:
directors_dict[dir] = {}
for genr in film['GENRES']:
if not genr in directors_dict[dir]:
directors_dict[dir][genr] = 0
directors_dict[dir][genr] += 1
print(directors_dict)
PS:我没有对此代码进行测试,我甚至不知道究竟是什么格式(您的文件需要从Google驱动器访问)。您应该使用print()或调试器来调试和纠正错误。