在 Confluence 中保留新行 API
Preserve new lines in Confluence API
我有字典列表:
{'associations': [{'host1': ['v1','v2']}, {'host2': ['v2,v3']}, {'host3': ['v1', 'v7']}]}
我试图通过使用 atlassian-python-api 模块以 YAML 格式传递到 confluence 页面的字典列表:
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 添加新行,但它也没有帮助,因为在那种情况下它会发布空页面:
confluence_data = pprint.pprint(confluence_data, width=1)
我这里做错了什么?
我没有资源直接使用 Confluence 实例进行测试,但如果您省略了 utf-8 编码,您应该会收到一个字符串。从atlassian-python-api documentation,我了解到您可以直接使用以字符串为值的body参数。
试试这个:
confluence_data = yaml.safe_dump(confluence_data['associations'], allow_unicode=True)
如果这没有帮助,因为 atlassian-python-api 可能无法正确处理 \n,您可以尝试修改字符串,然后将每个以下 HTML 标记中的字符串行:<p>line</p>
例如(您可以使用 list comprehension 来使它更简洁):
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 变量:
status = confluence.update_or_create(parent_id=someid, title='Test page', body=new_confluence_data, representation='storage')
希望这对您有所帮助,或者至少让您走上正轨!
我有字典列表:
{'associations': [{'host1': ['v1','v2']}, {'host2': ['v2,v3']}, {'host3': ['v1', 'v7']}]}
我试图通过使用 atlassian-python-api 模块以 YAML 格式传递到 confluence 页面的字典列表:
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 添加新行,但它也没有帮助,因为在那种情况下它会发布空页面:
confluence_data = pprint.pprint(confluence_data, width=1)
我这里做错了什么?
我没有资源直接使用 Confluence 实例进行测试,但如果您省略了 utf-8 编码,您应该会收到一个字符串。从atlassian-python-api documentation,我了解到您可以直接使用以字符串为值的body参数。
试试这个:
confluence_data = yaml.safe_dump(confluence_data['associations'], allow_unicode=True)
如果这没有帮助,因为 atlassian-python-api 可能无法正确处理 \n,您可以尝试修改字符串,然后将每个以下 HTML 标记中的字符串行:<p>line</p>
例如(您可以使用 list comprehension 来使它更简洁):
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 变量:
status = confluence.update_or_create(parent_id=someid, title='Test page', body=new_confluence_data, representation='storage')
希望这对您有所帮助,或者至少让您走上正轨!