local variable 'servers' referenced before assignment

后端 未结 2 528
你的背包
你的背包 2020-12-21 01:52
def websvc(currency):
    db = MySQLdb.connect("localhost", "root", "aqw", "PFE_Project")
    cursor = db.cursor()
    sql =          


        
相关标签:
2条回答
  • Your code not able to reach servers initialization and that is why you getting error. Simply move initialization before try..except. Change this way:

    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
    
    0 讨论(0)
  • 2020-12-21 02:11

    I see the problem now you have edited it to add the missing parts. It's the exception handler.

    If you have an error after try and before servers=[] it will jump to the except clause, then see return servers and fail.

    You might want to use a list(), instead of using a dict() to emulate a list ...

    0 讨论(0)
提交回复
热议问题