2016-08-27 7 views
0

私はpython3.5を使用し、mysqlを使用してデータを取得します。 モデルを作成せずに各列のデータを取得する方法がわかりません。mysqlからpython3.5によって返される各データの方法

# encoding=utf-8 
import mysql.connector 

HOST = 'localhost' 
PORT = 3306 
USER_NAME = "root" 
PASSWORD = "anywhere" 
DB_NAME = "test" 


def create_db_connection(): 
    try: 
     conn = mysql.connector.connect(user=USER_NAME, password=PASSWORD, database=DB_NAME) 
     return conn 
    except mysql.connector.Error as e: 
     print("Something went wrong: {}".format(e)) 


def find_all_user(): 
    sql = "select * from test_users" 
    conn = create_db_connection() 
    cursor = conn.cursor() 
    try: 
     cursor.execute(sql) 
     return cursor.fetchall() 
    except mysql.connector.Error as e: 
     print("failed to find user by sql ={}, cause : {}".format(e.args[0], e.args[1])) 


def main(): 
    user_list = find_all_user() 
    print(user_list) 
    for user in user_list: 
     # how to get the data of user such as id, name ... 
     print(user) 


if __name__ == '__main__': 
    main() 

テーブルtest_users mainメソッドで

create table test_users(
    id primary key AUTO_INCREMENT, 
    name varchar(128) default null, 
    -- and other columns ... 
); 

、私が得ることができる方法列IDのデータ、名前 と私はuser[0]を使用しようとしたが、この方法では得ることができますiduser[1]nameになる可能性がありますが、そのテーブルがわからない場合はどのインデックスがわかるかわかりません。

他の方法でデータを取得できますか?

答えて

1

してみてください。タプルインデックスがstr`ない、整数またはスライスでなければなりません:

for user in user_list: 
     print(user["id"], user["name"]) 
+0

はTypeError '、動作しません。 –

+0

@BenDユーザーに印刷してください。:) –

+0

'user = [(1、 'userName')]'申し訳ありませんが、あまりにも忙しいです。ユーザープリントがあります。 %> _ <% –

関連する問題