我正在使用 PrettyTable 'from_db_cursor' 模块来很好地打印我从我的 sql 请求中得到的响应。一切正常,我唯一的问题是,对于某些查询,我想打印它们附加到同一行的表,如下所示:
countUnivers1: countUnivers2: countUnivers3:
+----------+ +----------+ +----------+
| COUNT(*) | | COUNT(*) | | COUNT(*) |
+----------+ +----------+ +----------+
| 1681943 | | 51954 | | 4140984 |
+----------+ +----------+ +----------+
但我无法找到如何做到这一点,这是我目前使用的代码:
i = 0
tables = []
with open(output, 'w+') as file:
file.write(str(current_time) + '\n')
for query in QUERIES.items():
cur.execute(query[1])
table = from_db_cursor(cur)
if not re.search('countUnivers' ,query[0]):
file.write('\n' + query[0] + ':\n')
file.write(str(table) + '\n')
else:
if i < 6:
file.write(query[0] + ':\t')
tables.append(str(table))
i += 1
elif i == 6:
file.write('\n')
for t in tables:
file.write(str(table) + '\t')
i = 0
tables = []
file.write('\nDatabase:\n' + json.dumps(dbParams, indent=4) + '\n')
这段代码输出我:
countUnivers1: countUnivers2: countUnivers3:
+----------+
| COUNT(*) |
+----------+
| 1681943 |
+----------+ +----------+
| COUNT(*) |
+----------+
| 51954 |
+----------+ +----------+
| COUNT(*) |
+----------+
| 4140984 |
+----------+
这里的 QUERIES 是一个充满 SQL 请求的 OrderedDict:
('countUnivers1', "SELECT COUNT(*) \
FROM ourson_offer o \
WHERE o.cat LIKE '1%' \
AND CHARACTER_LENGTH(o.cat) = 7"),
像这个。