Używam modułu Peewee jako ORM dla mojego projektu.Python Peewee execute_sql() przykład
Przeczytałem całą dokumentację, nie ma jasnego przykładu, jak przetworzyć wynik z db.execute_sql().
I śledził kod, tylko można znaleźć db.execute_sql() wróć kursor.
Czy ktoś wie, jak przetwarzać kursor, na przykład iterować nad nim i uzyskać z powrotem wynik złożonej instrukcji select.
Aktualizacja: Właśnie znalazłem następujący kod źródłowy z folderu peewee, powinno to pomóc mi rozwiązać ten problem.
class QueryResultWrapper(object): """ Provides an iterator over the results of a raw Query, additionally doing two things: - converts rows from the database into python representations - ensures that multiple iterations do not result in multiple queries """ def __init__(self, model, cursor, meta=None): self.model = model self.cursor = cursor self.__ct = 0 self.__idx = 0 self._result_cache = [] self._populated = False self._initialized = False if meta is not None: self.column_meta, self.join_meta = meta else: self.column_meta = self.join_meta = None def __iter__(self): self.__idx = 0 if not self._populated: return self else: return iter(self._result_cache) def process_row(self, row): return row def iterate(self): row = self.cursor.fetchone() if not row: self._populated = True raise StopIteration elif not self._initialized: self.initialize(self.cursor.description) self._initialized = True return self.process_row(row) def iterator(self): while True: yield self.iterate() def next(self): if self.__idx self.__ct): try: self.next() except StopIteration: break
Jaki jest typ zwróconego obiektu? Uruchom 'sql_execute()' i wydrukuj wynik, aby zobaczyć jego typ. – xbonez