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