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