def convert_sqlite_row_to_dict(row, n: int):
"""
Convert a single row of rows returned by a select query of sqlite3.
:param row:
:param n: The number of the first n columns those are grouped by.
:return:
"""
row_dict = {}
for i in range(n - 1, -1, -1):
if i == n - 1:
tmp_dict = {f'{row[i]}': row[i+1:]}
else:
tmp_dict = {f'{row[i]}': tmp_dict}
update_dict_cascade(row_dict, tmp_dict)
return row_dict
def convert_sqlite_rows_to_dict(rows: list, n: int):
"""
Convert a list of rows returned by a select query of sqlite3.
:param rows:
:param n: The number of the first n columns those are grouped by.
:return:
"""
rows_dict = {}
for i, row in enumerate(rows):
row_dict = convert_sqlite_row_to_dict(row, n)
update_dict_cascade(rows_dict, row_dict)
return rows_dict