0

我通过 python 从 sqlite 得到我的结果,就像这种元组:(u'PR:000017512',)但是,我想将它打印为'PR:000017512'。起初,我尝试使用索引 [0] 选择元组中的第一个。但是打印出来的结果还是u'PR:000017512'。然后我使用 str() 进行转换,没有任何改变。没有你我怎么打印这个?

4

3 回答 3

8

您将字符串表示与其值混淆了。当您打印 unicode 字符串时,u不会打印:

>>> foo=u'abc'
>>> foo
u'abc'
>>> print foo
abc

更新:

由于您正在处理一个元组,所以您不会这么容易:您必须打印元组的成员

>>> foo=(u'abc',)
>>> print foo
(u'abc',)
>>> # If the tuple really only has one member, you can just subscript it:
>>> print foo[0]
abc
>>> # Join is a more realistic approach when dealing with iterables:
>>> print '\n'.join(foo)
abc
于 2013-05-29T17:00:44.757 回答
2

看不到问题:

>>> x = (u'PR:000017512',)
>>> print x
(u'PR:000017512',)
>>> print x[0]
PR:000017512
>>>

你的字符串是 unicode 格式,但它仍然意味着 PR:000017512

查看有关字符串文字的文档

http://docs.python.org/2/reference/lexical_analysis.html#string-literals

于 2013-05-29T17:01:44.233 回答
1
In [22]: unicode('foo').encode('ascii','replace') 
Out[22]: 'foo'
于 2013-05-29T17:01:29.260 回答