2016-09-12 4 views
1

私は2つのフィールドがあり、 "UID" と呼ばれるテーブルを持って、RFIDをEMPID:mySQLクエリをPython辞書として保存し、後でスクリプトで呼び出す方法は?

  • 例RECORD = 1つの
  • 例1つの RFID = 88 999 33 555 EMPID RECORD 2 rfid = 64 344 77 222 empid = 2

私はst鉱石は、Pythonの辞書にこれらの値のすべて、と私は、スクリプトの後半で呼ばれるように変数としてのRFID番号(MyRFID)を設定することができます:

db = MySQLdb.connect("MyIp", "MyUser", "MyPass", "MyDB", cursorclass=MySQLdb.cursors.DictCursor) 
curs=db.cursor() 
curs.execute("""SELECT number, empid FROM rfid """) 

だから、後のコードで私はどうかを確認することができます既存の変数との一致がある場合:

if MyVariable == MyRFID: 
    #Create new record for that empid 

答えて

0

私はfetchallメソッドを探していると思います。

rows = cur.fetchall()

をして、行はタプルのリストが含まれます:あなたはどうなる

cur.execute("""SELECT number, empid FROM rfid """)

を呼び出した後。特に辞書にする必要がある場合は、この例ではdict(rows)を実行するだけで済みますが、クエリが2つの列を返すためにのみ機能します。あなたが想像された辞書はあなたがDictCursor(Python: use mysqldb to import a MySQL table as a dictionary?を見てする必要があるキーとして列の名前を持っていた場合

rows_dict = dict([ k[0], k[1:]) for k in rows])

Converting List of 3 Element Tuple to Dictionaryを参照してください)、それが二つ以上の列だった場合は、のようなものが必要になります)。

+0

タプルのリストを含むrows = cur.fetchall()を実行すると、rfidフィールドがそれらのタプル内にあればどのようにしてempidを見つけることができますか? IE:if MyVariable == MyRFID: – craisondigital

+0

上記のクエリを正しく理解していれば、rfidはrows [i] [0]、empidはrows [i] [1]になります。 – mussorsky

+0

ありがとうございました。私はすぐにこれをテストすることができます。 'code' rows = cur.fetchall()' code'そして、後でMyVariable == rows [i] [0]: 'code'' code'ならば 'code'を置くことができます。印刷行[i] [1] – craisondigital

関連する問題