我的模型如下:
class Article (models.Model):
title = models.CharField(max_length=200)
body = models.CharField(max_length=200)
当我这样做时
Article.objects.values_list('body',flat=True).distinct()
我得到了
[u'blah']
马
当我做Article.objects.values_list('title',flat=True).distinct()
我得到了
[u'test 1', u'test 2', u'test 3']
我的问题是,为什么在所有输出面前都有'u'?有没有办法在没有你的情况下得到它?基本上我想要做的是获取我的数据库的每列的唯一值。也许有更好的方法来做到这一点。
答案 0 :(得分:1)
在Python中,Unicode string literals are prepended with u
or U
:
在Python源代码中,Unicode文字被编写为前缀为“u”或“U”字符的字符串:
u'abcdefghijk'
。可以使用\u
转义序列写入特定的代码点,然后是四个十六进制数字,给出代码点。\U
转义序列类似,但需要8位十六进制数字,而不是4位数。
所以你看到的只是表明你的值是Unicode字符串,而不是常规字符串。如果您使用其中一个值,通常不会看到u
,例如
>>> print u'My String'
My String