2016-10-21 9 views
0

「\ r \ n」という文字列がありますが、そこにコンマを挿入して挿入し、配列内にいくつかの要素があります。私はコンマで1つの文字列を持っている<class 'django.db.models.query.QuerySet'>" r n"が発生した場合、コンマで文字列を区切ります。

def test_method(self): 
    my_list = self.texts.filter(code='open') 
    for i in my_list: 
     return strip_tags(i.text.replace('\r\n', ',').split(',')) 

my_listというのである:

は、これは私のコードです。

+0

「strip_tags」とは何ですか?何が問題なのですか? – Sayse

答えて

0

私はあなたが持っているエラーは、それが1行だけで動作していると仮定します。

returnがforループの最初の反復の後に戻るため、returnyieldに変更することができます。これにより、反復処理が可能なジェネレータが提供されます。

for i in my_list: 
    yield strip_tags(i.text.replace('\r\n', ',').split(',')) 

それ以外の場合は、そのリストを終了します。あなたは

あなたが最終的な結果として要素の配列を必要として、あなたはカンマで区切られた文字列

couple_of_elements_comma_separated_string.split(「」)から配列を作成することができます

ret_val = [] 
for i in my_list: 
    ret_val.append(strip_tags(i.text.replace('\r\n', ',').split(','))) 
return ret_val 
0

第1の一時リストを作成する必要があります何を探していますか?他に何か?

0

あなたはreturnをforループの後ではなく内部で実行しているため、1つの文字列しか取得できません。そして、forループ内で.appendを実行する代わりに、リストの理解でこれを行うことができます。あなたのtest_methodと仮定すると、それは次のようになります意図したとおりにそうでない作品:あなたがしたいだけの事はあなたの文字列内,\r\nを交換する場合は、しかし、

def test_method(self): 
    my_list = self.texts.filter(code='open') 
    return [strip_tags(i.text.replace('\r\n', ',').split(',')) for i in my_list] 

、最後の行はこのように単純化することができます

return [i.replace('\r\n', ',') for i in my_list] 
関連する問題