Python如何获取函数返回值并使用?新手技术求助
解决NameError: name 'dealId' is not defined问题
问题原因
你直接使用了未定义的dealId变量,没有从API返回的resp字典中提取出对应的dealId值。
解决步骤
从API返回结果中提取dealId
API返回的resp是字典结构,你需要通过键名dealId取出对应的值并赋值给变量。推荐用get()方法,避免键不存在时抛出KeyError:# 调用API获取数据 resp = service.get_deal_data(size=1, level=None, limit_distance=None, limit_level=None) # 提取dealId,get方法可指定默认值(比如None)应对键不存在的情况 deal_id = resp.get('dealId', None)若确定
dealId一定存在,也可直接用键取值:deal_id = resp['dealId']修正列表比对代码
你的列表元素未加引号,会被Python当成变量引发错误;同时不要用list作为变量名(它是Python内置类型),换成更明确的名称:# 修正后的ID列表,每个元素为字符串类型(加引号) deal_ids_list = ["DDHWUH5HGMA8", "JNDWJ7HDJ2", "7HDWUDH9D"] # 使用提取好的deal_id进行比对 if deal_id in deal_ids_list: print("exist") else: print("not exist")
完整代码示例
# 调用API获取数据 resp = service.get_deal_data(size=1, level=None, limit_distance=None, limit_level=None) # 提取dealId deal_id = resp.get('dealId') # 定义ID列表 deal_ids_list = ["DDHWUH5HGMA8", "JNDWJ7HDJ2", "7HDWUDH9D"] # 比对逻辑(加判断避免deal_id为None时出错) if deal_id and deal_id in deal_ids_list: print("exist") else: print("not exist")
内容的提问来源于stack exchange,提问作者Nikolas Weichert
相关产品推荐
相关产品推荐

