diff --git a/db.py b/db.py
index f1c6a567bc9ab07be1b213873490b6c48b8508ad..acc78ed5747c08debbb10cf8c389e29f6b4f086f 100644
--- a/db.py
+++ b/db.py
@@ -64,17 +64,16 @@ def query(operation, *params, delim="sep"):
 	rows = cur.fetchall()
 	res = []
 	for row in rows:
-		res.append([{}])
+		res.append({})
+		ptr = res[-1]
 		for col, desc in zip(row, cur.description):
 			name = desc[0].split('.')[-1]
 			if name == delim:
-				res[-1].append({})
+				ptr = res[-1][col] = {}
 				continue
 			if type(col) == str:
 				col = col.replace('\\n', '\n').replace('\\r', '\r')
-			res[-1][-1][name] = col
-		if len(res[-1]) == 1:
-			res[-1] = res[-1][0]
+			ptr[name] = col
 	return res
 
 def modify(operation, *params):