分配前引用的本地变量“服务器”

发布于 2021-01-29 14:56:01

def websvc(currency):
    db = MySQLdb.connect("localhost", "root", "aqw", "PFE_Project")
    cursor = db.cursor()
    sql = "SELECT * FROM myform_composantsserveur"

    try:
        cursor.execute(sql)
        results = cursor.fetchall()
        currency_in = currency
        req = urllib2.urlopen('http://rate-exchange.appspot.com/currency?from=USD&to=%s') % (currency_in) 
        req1 = req.read()
        rate = int(req1['rate'])
        # rate = 0.77112893299999996

        servers = []
        for row in results:
            result = {} 
            result['1'] = row[1]
            result['3'] = int(row[2])
            result['4'] = int(row[3])
            result['5'] = int(row[4])
            result['6'] = row[5]
            result['7'] = int(row[6])
            result['8'] = row[7]
            result['9'] = row[8]
            p = rate * calculations_metric (int(row[2]), int(row[3]), int(row[4]), int(row[6]), row[7])
            result['2'] = p
            keys = result.keys()
            keys.sort()
            servers.append(result)

    except:
        print "Error: unable to fetch data"
    db.close()
    return servers

但我在编译代码时遇到此错误:

异常类型:UnboundLocalError

异常值:分配前已引用本地变量“服务器”

异常位置:/ home / amine / PFE目录/ websvc中的mysite1 / myform /
Webservice.py,第43行Python可执行文件:/usr/bin/python2.7

我在此函数中添加参数之前,此代码正常工作

关注者
0
被浏览
89
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    您的代码无法到达服务器初始化,这就是为什么会出错。只需在try..except之前移动初始化即可。更改此方式:

    def websvc(currency):
        db = MySQLdb.connect("localhost", "root", "aqw", "PFE_Project")
        cursor = db.cursor()
        sql = "SELECT * FROM myform_composantsserveur"
        servers = []
    
        try:
            cursor.execute(sql)
            results = cursor.fetchall()
            currency_in = currency
            req = urllib2.urlopen('http://rate-exchange.appspot.com/currency?from=USD&to=%s') % (currency_in) 
            req1 = req.read()
            rate = int(req1['rate'])
            # rate = 0.77112893299999996
    
            for row in results:
                result = {} 
                result['1'] = row[1]
                result['3'] = int(row[2])
                result['4'] = int(row[3])
                result['5'] = int(row[4])
                result['6'] = row[5]
                result['7'] = int(row[6])
                result['8'] = row[7]
                result['9'] = row[8]
                p = rate * calculations_metric (int(row[2]), int(row[3]), int(row[4]), int(row[6]), row[7])
                result['2'] = p
                keys = result.keys()
                keys.sort()
                servers.append(result)
    
        except:
            print "Error: unable to fetch data"
        db.close()
        return servers
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看