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
异常类型:UnboundLocalError
异常值:分配前已引用本地变量“服务器”
异常位置:/ home / amine / PFE目录/ websvc中的mysite1 / myform / Webservice.py,第43行Python可执行文件:/usr/bin/python2.7
我在此函数中添加参数之前,此代码正常工作
您的代码无法到达服务器初始化,这就是为什么会出错。只需在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