mirror of
https://github.com/simonw/sqlite-utils.git
synced 2026-09-25 11:24:12 +02:00
Added db[table].rows iterator
This commit is contained in:
parent
62e1edeaf6
commit
3095f2e671
3 changed files with 26 additions and 0 deletions
|
|
@ -52,6 +52,17 @@ You can also iterate through the table objects themselves using the ``.tables``
|
||||||
>>> db.tables
|
>>> db.tables
|
||||||
[<Table dogs>]
|
[<Table dogs>]
|
||||||
|
|
||||||
|
Listing rows
|
||||||
|
============
|
||||||
|
|
||||||
|
To iterate through dictionaries for each of the rows in a table, use ``.rows``::
|
||||||
|
|
||||||
|
>>> db = sqlite_utils.Database("dogs.db")
|
||||||
|
>>> for row in db["dogs"].rows:
|
||||||
|
... print(row)
|
||||||
|
{'id': 1, 'age': 4, 'name': 'Cleo'}
|
||||||
|
{'id': 2, 'age': 2, 'name': 'Pancakes'}
|
||||||
|
|
||||||
Creating tables
|
Creating tables
|
||||||
===============
|
===============
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -134,6 +134,15 @@ class Table:
|
||||||
).fetchall()
|
).fetchall()
|
||||||
return [Column(*row) for row in rows]
|
return [Column(*row) for row in rows]
|
||||||
|
|
||||||
|
@property
|
||||||
|
def rows(self):
|
||||||
|
if not self.exists:
|
||||||
|
return []
|
||||||
|
cursor = self.db.conn.execute("select * from [{}]".format(self.name))
|
||||||
|
columns = [c[0] for c in cursor.description]
|
||||||
|
for row in cursor:
|
||||||
|
yield dict(zip(columns, row))
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def pks(self):
|
def pks(self):
|
||||||
return [column.name for column in self.columns if column.is_pk]
|
return [column.name for column in self.columns if column.is_pk]
|
||||||
|
|
|
||||||
|
|
@ -46,6 +46,12 @@ def test_columns(existing_db):
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
|
def test_rows(existing_db):
|
||||||
|
assert [{"text": "one"}, {"text": "two"}, {"text": "three"}] == list(
|
||||||
|
existing_db["foo"].rows
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
def test_schema(existing_db):
|
def test_schema(existing_db):
|
||||||
assert "CREATE TABLE foo (text TEXT)" == existing_db["foo"].schema
|
assert "CREATE TABLE foo (text TEXT)" == existing_db["foo"].schema
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue