如何从函数中提取键值?

2024-09-25 06:29:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我有字典格式的电影数据,比如下面的例子:

 {'Similar': {'Info': [{'Name': 'Tony Bennett', 'Type': 'music'}], 'Results': [{'Name': 'The Startup Kids', 'Type': 'movie'}, {'Name': 'Charlie Chaplin', 'Type': 'movie'}, {'Name': 'Venus In Fur', 'Type': 'movie'}, {'Name': 'Loving', 'Type': 'movie'}, {'Name': 'The African Queen', 'Type': 'movie'}]}}

我需要从中提取电影名称,但我在旅途中遇到了不同的错误。已经尝试了很多事情,但没有找到解决办法。在

我创建了get_movies_from_tastedive(movies)函数,以便从tastedive获取关于电影的数据(第1部分),然后定义了第二个函数(第2部分)提取_movie_titles以获取电影标题。在

获取KeyError:KeyError:类似于第23行 -我在runestone学习环境中运行它,它还显示:{'error':'响应不可解释为json。尝试打印.text属性'}。 -如果我尝试打印.text,它会在第21行显示AttributeError:'dict'对象没有属性'text'

第一部分

^{pr2}$

第二部分

def extract_movie_titles(movies):
    t = get_movies_from_tastedive(movies) 
    #title = t.text
    #print(title)
    return [d['Name'] for d in t['Similar']['Info']]


extract_movie_titles(get_movies_from_tastedive("Tony Bennett"))
extract_movie_titles(get_movies_from_tastedive("Bridesmaids"))

预期的结果应该是:[“创业孩子”,“查理卓别林”],“皮草中的维纳斯”,“爱”,“非洲女王”]但是得到了一个关键错误:类似于第23行


Tags: 数据textnamefrominfoget电影type
1条回答
网友
1楼 · 发布于 2024-09-25 06:29:15

您要查找的信息位于t['Similar']['Results']

以下代码适用于我:

d =  {'Similar': {'Info': [{'Name': 'Tony Bennett', 'Type': 'music'}], 'Results': [{'Name': 'The Startup Kids', 'Type': 'movie'}, {'Name': 'Charlie Chaplin', 'Type': 'movie'}, {'Name': 'Venus In Fur', 'Type': 'movie'}, {'Name': 'Loving', 'Type': 'movie'}, {'Name': 'The African Queen', 'Type': 'movie'}]}}


def extract_movie_titles(d):
   return [m['Name'] for m in d['Similar']['Results']]

print (extract_movie_titles(d))

输出: enter image description here

相关问题 更多 >