Python 换行前用引号括起值

Python 换行前用引号括起值,python,jinja2,Python,Jinja2,我正在制作一个jinja2模板来管理一些网络设备上的SSH密钥。 我有一个名为user_info的dict,它基本上是{username:ssh_key} 为了使配置正常工作,我需要在 在jinja2中很容易做到这一点,如下所示: system { login { {% for key, value in user_info.items() %} user {{ key }} { class super-user; aut

我正在制作一个jinja2模板来管理一些网络设备上的SSH密钥。 我有一个名为user_info的dict,它基本上是{username:ssh_key}

为了使配置正常工作,我需要在 在jinja2中很容易做到这一点,如下所示:

system {
    login {
        {% for key, value in user_info.items() %}
        user {{ key }} {
        class super-user; 
        authentication {
            ssh-rsa "{{ value }}"
            }
        }
        {% endfor %}
    }
}
请注意{value}周围的 我遇到的问题是dict在ssh密钥的末尾有一个换行符,例如:

'bob': 'ssh-rsa this-is-my-ssk-key\n'
所以我需要包装ssh-rsa,这是我的ssk密钥,但在新行之前

我需要将\n保留在那里,因为有些人有多个ssh密钥,\n是如何将它们分离出来的。e、 g

'bob': 'ssh-rsa this-is-my-ssk-key\n ssh-rsa another-ssh-key\n ssh-rsa yes-this-is-one-more-ssh-key'
因此,我需要在新行之前将每个ssh rsa部分包装好。。。
这可能吗?

如果他们都需要自己的线路,请尝试一下。strip将在拆分之前删除所有尾随的换行符

authentication {
    {% for key in value.strip().split('\n') %}
        ssh-rsa "{{ key }}"
    {% endfor %}
}

将它们拆分为列表并仅作为列表保留。然后您可以添加到每个项目中,并使用“\n”将它们连接回来,或者您可以使用for-loop-in-template以{{value}分隔显示每个元素。您的意思是将ssh密钥拆分为一个列表或整个内容,而不使用dict吗?我要在哪里分钱?在jinja2或我的python代码中?您只需要第一个ssh密钥吗?不,我需要所有密钥将仅ssh rsa拆分到列表中,并将此列表保留在您的字典中。当你得到它时,用python来做。