从db.get结果的split()中排除unicode

时间:2016-05-16 17:36:38

标签: python

x.split()的下面结果是我想要的,因为结果中没有unicode。

server:~ brian$ python
Python 2.7.1 (r271:86832, Jul 31 2011, 19:30:53) 
[GCC 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2335.15.00)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> x = 'M Y'
>>> x.split()
['M', 'Y']

但是在我的应用程序中使用db.get如下所示,choices的结果是[u'M', u'Y']而是'choices' = 'M Y'

def post(self, blog_id):
        blog = db.get(db.Key.from_path('Blogs', blog_id))
    n = Reminders(parent=blog, purpose=self.request.get('purpose'),
                  choices=self.request.get('choices').split())
        n.put()

如何获得理想的结果?

这个问题与另一个问题不同,因为好像google-app-engine或python2.7强制围绕分裂序列的每个元素进行u''。我也试过使用.encode('ascii','ignore'),但无济于事。

2 个答案:

答案 0 :(得分:0)

尝试使用encode功能。

示例:

queryset.filter(message="this is my message").first() # this will now give you a single element

在您的代码中,在拆分之前添加In [1]: x= u'M Y' In [2]: x Out[2]: u'M Y' In [3]: x.split() Out[3]: [u'M', u'Y'] In [4]: x.encode('utf8').split() Out[4]: ['M', 'Y'] 函数:

encode

答案 1 :(得分:0)

在我的情况下答案很简单,只需在javascript而不是在python中执行split()。这样u'...'永远不会生成。