我有字典列表:
{'associations': [{'host1': ['v1','v2']}, {'host2': ['v2,v3']}, {'host3': ['v1', 'v7']}]}
我想通过使用atlassian-python-api模块以YAML格式传递到此合页的字典列表:
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')
但是它的发布没有关于融合的新思路。
我尝试使用pprint添加新行,但是这样做没有帮助,因为在这种情况下,它会发布空白页:
confluence_data = pprint.pprint(confluence_data, width=1)
我在这里做错了什么?
答案 0 :(得分: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
然后在您的调用中将confluence_data变量替换为new_confluence_data:
status = confluence.update_or_create(parent_id=someid, title='Test page', body=new_confluence_data, representation='storage')
希望这有助于或至少使您走上正轨!