Skip to content

results.dict() method for SQL query results #2414

@simonw

Description

@simonw

I find myself using this pattern all the time:

rows = [dict(r) for r in (await db.execute("select * from t"))]

I'm going to add a utility method like this:

rows = (await db.execute("select * from t")).dicts()

Relevant code:

class Results:
def __init__(self, rows, truncated, description):
self.rows = rows
self.truncated = truncated
self.description = description
@property
def columns(self):
return [d[0] for d in self.description]
def first(self):
if self.rows:
return self.rows[0]
else:
return None
def single_value(self):
if self.rows and 1 == len(self.rows) and 1 == len(self.rows[0]):
return self.rows[0][0]
else:
raise MultipleValues
def __iter__(self):
return iter(self.rows)
def __len__(self):
return len(self.rows)

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions