Python在连接时过滤掉空字符串

时间:2019-02-11 01:56:25

标签: python python-2.7

我有一个字符串需要与'|'连接在用户界面中。例如:

'Walkable  Close to Transit  HOA Fee Free'

到目前为止,我有:

' | '.join(row['notes'].split('  '))

出于某种原因,如果字符串中只有一个值(例如'Walkable  ')我需要'Walkable |'时得到'Walkable'

我也尝试过:

' | '.join(filter(None, row['notes'].split('  ')))

但是,我得到filter undefined error。我正在使用Python 2.7。关于如何使它起作用的任何想法?

2 个答案:

答案 0 :(得分:0)

过滤器None不起作用,但可以使用等效的生成器表达式:

' | '.join(part for part in row['notes'].split('  ') if part)

答案 1 :(得分:0)

似乎我遗漏了一些重要信息:该错误正在Jinja模板中引发。通过按以下方式将串联移动到我的app.py中,它起作用了:

def format_notes(value):
    values = value.split('  ')
    return ' | '.join(filter(None, values))

在我的模板中:

{{row['notes']|format_notes if row['notes'] != None}}

感谢@ bro-grammer的提示。