下面的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'...'
就永远不会生成。