python, 데이터베이스에서 값 가져와서, 사용 할 때 궁금한게 생겼습니다.
조회수 770회
제가 데이터 베이스에 받아온 값을 append로 리스트에 넣고, 각각의 알맹이 값을 쓸 때는 1과 같이 배열에 2번 걸러서 리스트[ ] 제거하고, 튜플( ) 제거한 후에 사용하고 있는데, 다른분들은 어떻게 하시는지 궁금합니다.
그리고 디비에서 records 값 가져와서 2번에서 dict 하면 바로 key,value가 되는데, python.py에서 sqlalchmy.engine.. 값 에서 어떻게 바로 key, value가 되는지도 궁금해요..
python.py
records = db.session.execute(db.session.query(table))
# records = [<sqlalchemy.engine.result.ResultProxy object at 0x7fd035e8d7d0>]
1
season = []
for row in records:
season.append(row)
# season = [(1, 'Spring'), (2, 'Summer'), (3, 'Fall'), (4, 'Winter')]
for i in range(len(season)):
result = season[i]
# season[0] = (1, 'Spring')
result1 = result[0]
result2 = result[1]
print(result1)
print(result2)
결과:
1
Spring
2
Summer
3
Fall
4
Winter
2
aaa=[dict(record) for record in season]
print(aaa)
결과:
[{1 : 'Spring', 2 : 'Summer', 3 : 'Fall', 4 : 'Winter'}]
-
(•́ ✖ •̀)
알 수 없는 사용자
1 답변
-
데이터베이스일때로 국한되는 문제가 아닌 듯 싶네요
튜플은 unpack 이 가능합니다.
result1, result2 = result
dict 로 변환은 내부에서 진행되는 겁니다.
사실 python db 모듈(스펙상)에서는 tuple로만 받게 되어 있습니다.
그런데 mysql 드라이버에서는 DictCursor 등 추가로 제공되기도 합니다.
처리가 가능한 이유는 table 의 meta 정보도 받기 때문에 테이블의 컬럼명을 알 수 있습니다. 컬럼명을 알기에 {'컬럼명':값} 와 같은 dict 로 변환할 수 있습니다.
그리고 질문에서는 tuple -> dict 변환을 물으셨는데 tuple 의 첫요소는 키, 두번째를 value 로 변환해줍니다.
댓글 입력