如何在python的数据库表显示之前删除“u和''”

时间:2013-05-31 18:54:56

标签: python database

我正在尝试使用python创建数据库,然后插入数据并显示它。 但是,输出在每个字符串之前添加u。 我该怎么办,如何删除“你”? 以下是输出显示:

-----------------------------------------------
| Date         | Time    | Price      |
-----------------------------------------------
(u'31/05/2013', u'11:10', u'$487')
(u'31/05/2013', u'11:11', u'$487')
(u'31/05/2013', u'11:13', u'$487')
(u'31/05/2013', u'11:19', u'$487')

我希望输出只显示

-----------------------------------------------
| Date         | Time    | Price      |
-----------------------------------------------
 31/05/2013       11:10     $487

我不希望看到u''

以下是我的代码的一部分

cursor.execute("CREATE TABLE if not exists table2 (date text, time text, price real)")

date=strftime("%d/%m/%Y")
time=strftime("%H:%M")
data1 = [(date,time,eachprice),
        ]
cursor.executemany('INSERT INTO table2 VALUES (?,?,?)', data1)
conn.commit()
#output
print "Showing history for 'ipad mini', from harveynorman"
print "-----------------------------------------------"
print "| Date         | Time    | Price      |"
print "-----------------------------------------------"
for row in cursor.execute('select * from table2').fetchall():
       print row

所以,任何人都可以帮我弄清楚如何删除g''

1 个答案:

答案 0 :(得分:5)

你正在用unicode字符串查看整个元组;当向您显示内部具有unicode值的元组时,u''是正常的:

>>> print u'Hello World!'
Hello World!
>>> print (u'Hello World',)
(u'Hello World',)

您想格式化每一行:

print u' {:<15} {:<8} {:<6}'.format(*row)

请参阅str.format() documentation,特别是Format Syntax reference;上面的格式是带有字段宽度的3个值,左对齐每个值到它们指定的宽度。

宽度是近似值(我没有准确计算帖子中的空格数量),但应该很容易调整以适应您的需要。

演示:

>>> row = (u'31/05/2013', u'11:10', u'$487')
>>> print u' {:<15} {:<8} {:<6}'.format(*row)
 31/05/2013      11:10    $487  

或者,使用循环和一系列行条目:

>>> rows = [
... (u'31/05/2013', u'11:10', u'$487'),
... (u'31/05/2013', u'11:11', u'$487'),
... (u'31/05/2013', u'11:13', u'$487'),
... (u'31/05/2013', u'11:19', u'$487'),
... ]
>>> for row in rows:
...     print u' {:<15} {:<8} {:<6}'.format(*row)
... 
 31/05/2013      11:10    $487  
 31/05/2013      11:11    $487  
 31/05/2013      11:13    $487  
 31/05/2013      11:19    $487