4

私は次のPythonコードを持っています。

class MainPage(BaseHandler):

    def post(self, location_id):
        reservations = self.request.get_all('reservations')
        for r in reservations:
            a=str(r)
            logging.info("r: %s " % r)
            logging.info("lenr: %s " % len(r))
            logging.info("a: %s " % a)
            logging.info("lena: %s " % len(a))
            r.split(' ')
            a.split(' ')
            logging.info("split r: %s " % r)
            logging.info("split a: %s " % a)

次のログプリントアウトが表示されます。

INFO     2012-09-02 17:58:51,605 views.py:98] r: court2 13 0 2012 9 2 
INFO     2012-09-02 17:58:51,605 views.py:99] lenr: 20 
INFO     2012-09-02 17:58:51,605 views.py:100] a: court2 13 0 2012 9 2 
INFO     2012-09-02 17:58:51,606 views.py:101] lena: 20 
INFO     2012-09-02 17:58:51,606 views.py:108] split r: court2 13 0 2012 9 2 
INFO     2012-09-02 17:58:51,606 views.py:109] split a: court2 13 0 2012 9 2 

split('')の代わりにsplit()を使用すると、同じログ出力が得られます。

結果を6つのエントリを持つリストに分割しないのはなぜですか?gaeインタラクティブコンソールでのテストで期待どおりの結果が得られるため、問題はhttpリクエストが関係していることだと思います。

4

3 に答える 3

11

split文字列を変更しません。分割された部分のリストを返します。そのリストを使用する場合は、たとえば、を使用してリストを割り当てる必要がありますr = r.split(' ')

于 2012-09-02T18:17:54.027 に答える
4

split元の文字列を分割しませんが、リストを返します

>>> r  = 'court2 13 0 2012 9 2'
>>> r.split(' ')
['court2', '13', '0', '2012', '9', '2']
于 2012-09-02T18:17:29.080 に答える
4

変化する

r.split(' ')
a.split(' ')

r = r.split(' ')
a = a.split(' ')

説明:splitストリングを所定の位置で分割しませんが、分割バージョンを返します。

ドキュメントから:

split(...)

    S.split([sep [,maxsplit]]) -> list of strings

    Return a list of the words in the string S, using sep as the
    delimiter string.  If maxsplit is given, at most maxsplit
    splits are done. If sep is not specified or is None, any
    whitespace string is a separator and empty strings are removed
    from the result.
于 2012-09-02T18:17:48.133 に答える