我有一个字符串,其中有" \ 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 :(得分: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]