尝试自学Python和Sqlite,我的脑袋在旋转。如何“清理”查询的输出以从结果中删除所有括号,逗号等。还想.title()
第二栏。例如:
def get_all_bdays(self):
print("\n" * 100)
print("The birthdays we know about are: ")
self.c.execute('SELECT * FROM birthdays')
for row in self.c.fetchall():
print(row)
结果如下:
The birthdays we know about are:
(1, 'joe smoe', '12-12-1212')
如何将这些混乱重新格式化为:
The birthdays we know about are:
1. Joe Smoe 12-12-1212
我的最终目标是为我的小型企业创建一个库存系统,我的员工可以使用它来查找库存产品在我的库房中的位置。考虑将Flask用于类似的东西,但是从那时起我还有很长的路要走。
答案 0 :(得分:3)
每一行都是一个有三个值的元组:数字,名称和生日。 print(row)
正在输出元组及其所有括号和引号,而不是任何格式化版本。
在Python中,你可以解构元组并将它的部分分配给不同的变量,然后使用Python的printf
语法进行格式化 - 就像格式化一样:
for row in self.c.fetchall():
number, name, date = row
print("%d. %s on %s" % (number, name.title(), date))
甚至:
for number, name, date in self.c.fetchall:
print("%d. %s on %s" % (number, name.title(), date))
答案 1 :(得分:1)
当您print(row)
获得row
的Python表示时,其中包含引号和逗号等。你想要做的是将数据str.format
变成你喜欢的任何形状:
fmt = "{0}. {1}, on {2}"
for row in self.c.fetchall():
print(fmt.format(*row))