-3

我正在尝试使用 python 创建一个数据库,然后插入数据并显示它。但是,输出会u在每个字符串之前添加一个。我该怎么办,如何删除“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''

4

1 回答 1

5

您正在查看带有 unicode 字符串的整个元组;u''向您显示一个内部包含 unicode 值的元组时,这是正常的:

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

您要格式化每一行:

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

请参阅str.format()文档,特别是格式语法参考;上述格式 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  
于 2013-05-31T18:58:00.150 回答