2016-10-21 44 views
0

我有一個字符串,其中有「\ r \ n」,想要刪除並在其中插入一個逗號,並在數組中有幾個元素。用逗號分隔字符串時發生「 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是:<class 'django.db.models.query.QuerySet'>

我只有一個字符串用逗號。

+0

什麼是'strip_tags'?..什麼不工作? – Sayse

回答

0

我假設你遇到的錯誤是它只能用於一行。

這是因爲您正在使用return,它將在for循環的第一次迭代後返回,因此您可以將return更改爲yield,這將爲您提供一個可迭代的生成器。

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

否則,如果它的列表你想結束。你需要做一個臨時列表第一

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

正如你所需要的元素作爲最終結果的陣列,您可以創建逗號分隔字符串

couple_of_elements_comma_separated_string.split陣列(「」)

你到底在找什麼?還有別的嗎?

0

您只會得到一個字符串,因爲您在for循環中而不是在之後執行return。而不是在for循環中做.append,你可以用列表理解來做到這一點。假設你test_method否則按預期工作就應該是這樣的:

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] 

但是,如果你想要做的唯一事情是與你的字符串中,更換\r\n,最後一排可以簡化成這樣:

return [i.replace('\r\n', ',') for i in my_list]