2

スタックオーバーフローのこの質問は、pymysqlを使用してテーブルから辞書を取得する方法に答えます。ただし、このメソッドは列ヘッダーをキーとして出力し、その値をその列のデータとして出力します。

実際のデータをキーと値として持つ最良の方法は何ですか?

例えば:

 Name    |Age
 -------------
 John    |25
 Tom     |45
 Tammy   |18

私が欲しい

  {John:25, Tom:45, Tammy:18}

いいえ

 [{Name:John},{Age:25},....]

これは私が今持っているものです:

def name2dict(name_list):
    name_list_tuple = tuple(name_list)
    conn = pymysql.connect()
    cur = conn.cursor(pymysql.cursors.DictCursor)
    Name2pos = """SELECT Tables.ID, Tables.Position FROM Tables where Tables.Name in %s"""
    cur.execute(Name2pos, [name_list_tuple])
    query_dict = cur.fetchall()
    cur.close()
    conn.close()
    return query_dict
4

2 に答える 2

4

ディクショナリ カーソルを使用しないでください。代わりに、通常のカーソルを使用してください。コードを少し変更した簡単な例 (チェックできないので正常に動作すると仮定) ですが、確実に改善できます。

def name2dict(name_list):
    name_list_tuple = tuple(name_list)
    conn = pymysql.connect()
    cur = conn.cursor()
    Name2pos = """SELECT Tables.ID, Tables.Position FROM Tables where Tables.Name in %s"""
    cur.execute(Name2pos)
    query_dict = dict(cur.fetchall())
    cur.close()
    conn.close()
    return query_dict
于 2014-10-23T15:31:07.980 に答える