首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >保留Confluence API中的新行

保留Confluence API中的新行
EN

Stack Overflow用户
提问于 2019-08-09 23:51:51
回答 1查看 526关注 0票数 1

我有一份字典清单:

代码语言:javascript
复制
{'associations': [{'host1': ['v1','v2']}, {'host2': ['v2,v3']}, {'host3': ['v1', 'v7']}]}

下面是我尝试使用atlassian-python-api模块以YAML格式传递给confluence页面的字典列表:

代码语言:javascript
复制
confluence_data = yaml.safe_dump(confluence_data['associations'], encoding='utf-8', allow_unicode=True)

    confluence = Confluence(
        url='https://confluence-url',
        username='user',
        password='password')

    status = confluence.update_or_create(parent_id=someid, title='Test page', body=confluence_data, representation='storage')

但它的发布没有关于confluence的新行。

我尝试使用pprint来添加新行,但它也没有帮助,因为它在这种情况下会发布空页:

代码语言:javascript
复制
confluence_data = pprint.pprint(confluence_data, width=1)

我在这里做错了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-08-10 01:27:37

我没有资源直接使用Confluence实例来测试这一点,但是如果您省略了utf-8编码,您应该会收到一个字符串。从atlassian-python-api documentation中,我了解到您可以直接使用body参数,并将字符串作为值。

试着这样做:

代码语言:javascript
复制
confluence_data = yaml.safe_dump(confluence_data['associations'], allow_unicode=True)

如果这没有帮助,因为atlassian-python-api可能无法正确处理\n,您可以尝试在将字符串移交给confluence之前对其进行修改,方法是将字符串的每一行放入以下HTML标记中:<p>line</p>

例如(您可以改用list comprehension以使其更简洁):

代码语言:javascript
复制
new_confluence_data = ""
confluence_data_lines = confluence_data.splitlines()
for line in confluence_data_lines:
    line = "<p>" + line + "</p>"
    new_confluence_data += line

然后在您的调用中用new_confluence_data替换confluence_data变量:

代码语言:javascript
复制
status = confluence.update_or_create(parent_id=someid, title='Test page', body=new_confluence_data, representation='storage')

希望这对你有所帮助,或者至少让你走上正轨!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57433517

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档