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