私はPythonでは比較的新しいですが、Javaの経験が豊富です。ほとんどの概念を理解しています。しかし、私はMySQLの問題を持ち続け、MySQL を使った関数から情報を渡して、後で別の関数で使用します。Pythonのmysqlの出力が機能しない
複数の戻りフィールドを持つ複雑なMySQLクエリを作成する必要があるため、SQLフィールドごとに複数のSQLクエリを実行したくないので、データベースが破損する可能性があります。 以下は私が達成しようとしているものの小さな例だと言っています。
私は、他の場所からパラメータを取得したSQLクエリ(def connory_mysql())を実行する機能を望んでいました。(この部分は動作します)、SQLクエリの出力を受け取り、使用するメイン関数に戻ります。 main関数は、異なるパラメータに対してSQLクエリの異なるカラム結果を使用する必要があります。
私は結果を返すことができますが、表示され、印刷時に辞書のように見えるresult1に割り当てることができますが、私は別のキーやデータをresult1 = connector_mysql(subSerialNum、ldev、today_date ) 返す前にSQL関数の辞書のキーを分割すると、ldev_cap = result ['ldev_cap'] SQL関数内の個々の要素を出力できます...しかし、パラメータを渡すことはできませんメイン関数に分割し、それらを分割する??
私は簡単に何かを見逃している必要がありますか何かを理解していないです...どのような援助やヘルプをいただければ幸いです...
...
result1 = connector_mysql(subSerialNum, ldev, today_date)
print(result1) #this works and appears to be a dictionary, but I can split it
## into its elements like:
ldev_cap = result1['ldev_cap'] ##-> this dosn't work here.....???? if i return it as a dictonary..
#and i'm unsure how to split them when i pass just the paramaters
#back if i split the dictionary in the sql function.
...
def connector_mysql(subSerialNum, ldev, today_date):
import pymysql.cursors
db_server = 'localhost'
db_name = 'CBDB'
db_pass = 'secure_password'
db_user = 'user1'
sql_query = (
"SELECT ldev_cap, ldev_usdcap FROM Ldevs WHERE sub_serial=%(serial)s "
"and ldev_id=%(lun)s and data_date=%(todayD)s")
connection = pymysql.connect(host=db_server,
user=db_user,
password=db_pass,
db=db_name,
cursorclass=pymysql.cursors.DictCursor)
try:
with connection.cursor() as cursor:
cursor.execute(sql_query, {'serial': subSerialNum, 'lun': ldev, 'todayD': today_date})
result = cursor.fetchone()
while result:
ldev_cap = result['ldev_cap'] #here the dictionary acts as
#expected and i can assign a value
ldev_usdcap = result['ldev_usdcap']
print(result)
return ldev_cap, ldev_usdcap #here i can return
finally:
connection.close()
を任意のヘルプや支援が大幅に
... apricatedされるだろう乾杯 グラハム
を使用して、各戻り値のデータにアクセスすることができますバックフィードのおかげで、私はそのていないディレクトリが、辞書を理解し、はいタプル概念を理解私は試してみましたが、うまく動作しませんでした。 – Graham
あなたの質問を言い換えるべきでしょう。返された結果から何を期待していますか?正確には「うまくいかない」とは何ですか? – hcheung