UnboundLocalError:赋值前引用了局部变量“r”(Django)

2024-05-18 20:53:49 发布

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

我想引用从RESTful API调用cwObj.get_company(company)创建的对象company_obj中的项company_id的值,然后将该值传递给另一个API调用cwObj.get_sites(company_id),然后返回该对象。然而,当我试图将company_id传递给API调用时,我得到了一个UnboundLocalError。通过debug,我可以看到company_id具有所需的值,因此我不确定为什么无法使用该值创建另一个对象。这不意味着变量确实被赋值了吗?如果不是,那么在变量到达cwObj.get_sites()调用之前分配它的最佳实践是什么?如果需要更多信息,请告诉我,谢谢!你知道吗

你知道吗视图.py你知道吗

def new_opportunity_location(request):
    company = request.GET.get('selected_company')
    company_obj = cwObj.get_company(company)
    company_id = company_obj[0]['id']
    sites = cwObj.get_sites(company_id)
    context = {'sites': sites}
    return render(request, 'website/new_opportunity_location.html', context)

    def get_company(self, request):
        try:
            r = requests.get(
                self.URL + 'company/companies?conditions=name="' + request + '"',
                headers=self.Header)
            r.raise_for_status()
        except:
            print(r.text)
            raise
        return r.json()

    def get_sites(self, request):
        try:
            r = requests.get(
                self.URL + 'company/companies/' + request + '/sites',
                headers=self.Header)
            r.raise_for_status()
        except:
            print(r.text)
            raise
        return r.json()

Tags: 对象selfapiidobjnewgetreturn
1条回答
网友
1楼 · 发布于 2024-05-18 20:53:49

r = requests.get(...)行中发生了一些异常,因此r永远不会被赋值,并且在执行print(r.text)时变量不存在。你知道吗

这就是为什么你不应该有一个赤裸裸的except:你不知道现在发生了什么样的异常。只抓住你期望发生的事。你知道吗

我猜是这样自身标题“不存在。你知道吗

相关问题 更多 >

    热门问题