-
[Python, Sqlite] 딕셔너리(사전형)로 row 바로 받기Python/이것저것 파이썬 2021. 12. 23. 13:32반응형
[Python, Sqlite] 딕셔너리(dict, dictionary)로 row 바로 받기
https://docs.python.org/3/library/sqlite3.html#row-objects
import sqlite3 con = sqlite3.connect(':memory:') cur = con.cursor() cur.execute( ''' create table stocks (date text, trans text, symbol text, qty real, price real) ''' ) cur.execute( '''insert into stocks values ('2006-01-05','BUY','RHAT',100,35.14)''' ) con.commit() cur.close()
con.row_factory = sqlite3.Row
을 이용하면
값을 튜플과 딕셔너리로 선택해서 받을 수 있다. ㄷㄷㄷrow.factory를 사용하지 않으면,
튜플이 담긴 리스트가 들어온다.콘솔에서 비교해 보라...
con.row_factory = sqlite3.Row cur = con.cursor() cur.execute('select * from stocks') # <sqlite3.Cursor object at 0x7f4e7dd8fa80> r = cur.fetchone() print(type(r)) # <class 'sqlite3.Row'> print(tuple(r)) # ('2006-01-05', 'BUY', 'RHAT', 100.0, 35.14) print(len(r)) # 5 print(r[2]) # 'RHAT' print(r.keys()) # ['date', 'trans', 'symbol', 'qty', 'price'] print(r['qty']) # 100.0 for member in r: print(member) # 2006-01-05 # BUY # RHAT # 100.0 # 35.14
다른 DB에도 이와 유사한 기능이 있으니 참고하시길...
mySQL에서는 pymysql.cursors.DictCursor반응형