2017-10-01 1 views
-2

私はこれを実行しています:(データの取得とテーブルのループ)出力は[{a:b、d:c、....}、{a:f、b:q、...}、{a:v、b:k、....}のようなタプルです。 ...]

ユーザーはテーブルです。コンソールがタプルを出力しています。

[{'special_needs': 'N/A', 'phonenumber': '5555555555', 'city': 'Oakland', 'zipcode': '44444', 'streetaddress': '32323 Apple St.', 'state': 'CA', 'email': '[email protected]', 'uid': 1, 'firstname': 'Bernie', 'lastname': 'Sanders', 'username': 'bernieswift'}, {'special_needs': 'N/A', 'phonenumber': '6666666666', 'city': 'Greenappple', 'zipcode': '77777', 'streetaddress': '24936 Calaroga Ave.', 'state': 'CA', 'email': '[email protected]', 'uid': 2, 'firstname': 'john', 'lastname': 'lost', 'username': 'tony'}] 

私が前にやっていた:(これはローカルで動作します)

print_str = "<table>" 
for result in results: 
print_str += "<tr><td> %s <br></td><td> %s <br></td><td> %s <br></td><td> %s <br></td><td> %s <br></td><td> %s <br></td><td> %s <br></td><td> %s <br></td><td> %s <br></td><td> %s <br></td><td> %s <br></td><td> %s <br></td><tr>" % (result['uid'], result['firstname'], result['lastname'], result['username'], result['city'], result['state'], result['streetaddress'], result['email'], result['special_needs'], result['phonenumber'], result['zipcode']) 
    print_str += "</table>" 

どのように私は、UIDの特定の値を得るのですかFIRSTNAMEなど

db = MySQLdb.connect("username.mysql.pythonanywhere-services.com", "username", "password", "username$database") 
cursor = db.cursor()  
cursor.execute('SELECT uid, firstname, lastname, username, city, state, streetaddress, email, special_needs, phonenumber, zipcode FROM users') 
results = cursor.fetchall() 
print(results) 

私はこの背中を取得しています? (データベース全体を反復処理したいと仮定して)データベースから個々の値を取得するにはどうすればよいですか?私はタプルで本当に混乱しています。

+0

データベースからか、単に値を返された値からそれらにアクセスする方法を意味するのですか? – Adders

+0

データベースからの値にアクセスする方法 –

+0

私はそれらを以前に戻ってきたとは思わなかった - あなたはそれを個々の列と行に保管していますか? (あなたが私を投票していないのであれば) – Adders

答えて

0

私はこのようなことができると思います。 uidはこれは、例えば、より複雑な文で動作します['Bernie']

返す1

uname = [counter['firsname'] for counter in result if counter['uid'] == 1] に等しく、たとえば、あなたがファーストネームをしたい:

data = [(counter['firstname'],counter['lastname']) for counter in result if counter['city'] in ['Oakland', 'Greenappple']]

戻り [('Bernie', 'Sanders'), ('john', 'lost')]

これは完璧なソルティではありませんがそれは仕事を終わらせます。

0

DictCursorを削除するデータベースを初期化する必要があります。

あなたは、次のようなものがあります:

`MySQLdb.connect(user='joe', passwd='password', db='dbname', 
         cursorclass=MySQLdb.cursors.DictCursor)` 
関連する問題