> 데이터 베이스 > MySQL 튜토리얼 > SQLite 쿼리에서 사전을 효율적으로 검색하는 방법은 무엇입니까?

SQLite 쿼리에서 사전을 효율적으로 검색하는 방법은 무엇입니까?

DDD
풀어 주다: 2025-01-03 22:57:43
원래의
1047명이 탐색했습니다.

How to Efficiently Retrieve Dictionaries from SQLite Queries?

SQLite 쿼리에서 사전 검색

제공된 코드 조각에서 현재 SQLite 쿼리에서 반환된 원시 튜플을 반복하고 있습니다.

db = sqlite.connect("test.sqlite")
res = db.execute("select * from table")
로그인 후 복사

튜플 목록을 반환합니다. 테이블의 각 행에 대해 수동으로 열 이름을 추출하고 사전을 구성해야 합니다. 그러나 SQLite는 쿼리에서 직접 사전을 얻는 두 가지 방법을 제공합니다.

1. row_factory

row_factory 옵션을 사용하면 각 행에서 객체를 생성하는 데 사용되는 사용자 정의 함수를 지정할 수 있습니다. 예를 들어 다음 함수는 사전을 반환합니다.

def dict_factory(cursor, row):
    d = {}
    for idx, col in enumerate(cursor.description):
        d[col[0]] = row[idx]
    return d
로그인 후 복사

row_factory 옵션을 이 함수에 설정하면 쿼리에서 반환된 각 행은 사전이 됩니다.

con = sqlite3.connect(":memory:")
con.row_factory = dict_factory
cur = con.cursor()
cur.execute("select 1 as a")
result = cur.fetchone()  # Returns {'a': 1}
로그인 후 복사

2. sqlite3.Row

또는 row_factory를 sqlite3.Row로 설정할 수 있습니다. 그러면 추가 메모리 오버헤드 없이 열에 대한 인덱스 기반 및 이름 기반 액세스를 모두 제공합니다.

con = sqlite3.connect(...)
con.row_factory = sqlite3.Row
cursor = con.cursor()
result = cursor.fetchone()  # Returns Row object with attribute-like access
로그인 후 복사

이러한 방법 중 하나를 사용하면 SQLite 쿼리에서 사전이나 속성에 액세스할 수 있는 개체를 쉽게 얻을 수 있으므로 수동 사전이 필요하지 않습니다. 공사중입니다.

위 내용은 SQLite 쿼리에서 사전을 효율적으로 검색하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿