2017-10-01 3 views
-2

mySQL을 사용하고 있는데 : (데이터 가져 오기 및 테이블을 통해 반복)출력은 [{a : b, d : c, ....}, {a : f, b : q, ...}, {a : v, b : k, ...]

users가 테이블입니다. 콘솔이 터플을 출력 중입니다.

[{'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

이전에 그런 식으로 반환 된 것을 보지 못했습니다. 개별 열과 행에 저장하고 있습니까? (fyi not not will you vote) – Adders

답변

0

나는 이런 식으로 할 수 있다고 생각합니다. UID이 더 복잡 예를 들어 문 작동 ['Bernie']

를 반환 한

uname = [counter['firsname'] for counter in result if counter['uid'] == 1] 와 동일한 경우, 예를 들어 , 당신은 FIRSTNAME을 원하는 :

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

반환 [('Bernie', 'Sanders'), ('john', 'lost')]

이것은 완벽한 soluti 아니지만 그것에 일을 끝내.

0

DictCursor를 제거한 데이터베이스를 초기화해야합니다.

당신은 다음과 같은 뭔가를해야합니다 :

`MySQLdb.connect(user='joe', passwd='password', db='dbname', 
         cursorclass=MySQLdb.cursors.DictCursor)` 
관련 문제