在Python中清理sqlite查询

时间:2017-04-12 02:03:23

标签: python sqlite

尝试自学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用于类似的东西,但是从那时起我还有很长的路要走。

2 个答案:

答案 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))