0
我写了一个函数,该函数应该将数据从mysql数据库导入python。该函数在包含该函数的文件中运行时工作,但当我尝试将该函数导入另一个python文件时,出现“Unbound LocalError”错误。UnboundLocalError:仅在导入函数中赋值之前引用的本地变量
我已经尝试将变量'sqlcode_sm'声明为全局变量,但它不能解决问题。
from __future__ import print_function
import pandas as pd
import numpy as np
import pymysql
pymysql.install_as_MySQLdb()
import MySQLdb as mdb
from datetime import datetime
import os
import sys
def sec_master_retriever(tables):
# should be any column(s) or * for all
sql_table = "sec_master"
######SQL PART: Retrieving the data
# Connect to the MySQL instance
db_host = 'localhost'
db_user = 'root'
db_pass = 'xyz'
db_name = 'securities_master'
con = mdb.connect(db_host, db_user, db_pass, db_name)
sqlcode_sm = """SELECT %s FROM %s AS sm ;""" % (tables, sql_table)
sqltable = pd.read_sql_query(sqlcode_sm, con=con)
return sqltable
如果我现在继续写:
df = sec_master_retriever('*')
这工作没有问题,但打开一个新的Python文件,导入功能,如下执行它:
from sec_master_retriever import sec_master_retriever as smr
df2 = smr("*")
错误结果:“UnboundLocalError:本地变量'sqlcode_sm'在赋值之前引用”
感谢您的帮助
感谢低于这个已经解决了这个问题! – sebseb