发生时用逗号分隔字符串" \ r \ n"

时间:2016-10-21 10:18:54

标签: python arrays django string django-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为:<class 'django.db.models.query.QuerySet'>

我只有一个带逗号的字符串。

3 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

由于您需要元素数组作为最终结果,您可以使用逗号分隔的字符串

创建数组

couple_of_elements_comma_separated_string.split( “”)

你到底在寻找什么?还有别的吗?

答案 2 :(得分: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]