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



下面的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'='M Y'时,choices的结果是[u'M', u'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()

我怎样才能得到我想要的结果?

这个问题与另一个问题不同,因为似乎谷歌应用程序引擎或python2.7会在被拆分的序列的每个元素周围强制使用u。我也试过使用.encode('ascii','ignore'),但没有用。

尝试使用encode函数。

示例:

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函数:

n = Reminders(parent=blog, purpose=self.request.get('purpose'),
     choices=self.request.get('choices').encode('utf8').split())

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

最新更新