Python调用Confluence的get_page_by_title报str无get属性如何解决
错误产生原因
- 存在低级拼写错误:导入的Confluence类名拼写错误,代码中写的是
Conflunce(少了一个字母e),会先导致类加载异常,即便后续跑通也会有问题 get_page_by_title方法参数传递不规范:使用位置参数传参时顺序和官方定义不匹配,多余的无效参数也会引发请求构造错误- 连接认证/配置错误:Confluence实例初始化的url、认证信息有误,导致请求返回的是字符串类型的错误提示(如401未授权、404地址不存在的提示文本),而非预期的JSON字典,所以调用
.get()方法时触发str对象没有get属性的报错 - 权限问题:所用账号没有目标TEST空间的访问权限,也会导致返回字符串类型的权限拒绝报错
可行解决方案
- 修正类名拼写错误
将导入语句修改为正确拼写:
from atlassian import Confluence
- 规范方法传参,使用关键字参数避免顺序错误
get_page_by_title不要传多余的无效位置参数,使用关键字参数指定对应值:
space = confluence.get_page_by_title(space_key="TEST", title="TEST1", limit=100)
- 修正Confluence初始化配置
- url必须带完整的http/https前缀,例如
https://你的企业Confluence域名.com,不要仅填写域名 - 若使用的是Atlassian云版Confluence(域名后缀为atlassian.net),不支持账号密码直接登录,需要将password参数替换为你在Atlassian账号后台生成的API Token
- 确认所用账号拥有TEST空间的可读权限
- 提前验证连接有效性
在调用页面查询接口前,先添加连接测试代码,确认连接正常再执行业务逻辑:
# 测试连接:获取第一个空间信息 print(confluence.get_all_spaces(start=0, limit=1))
内容的提问来源于stack exchange,提问作者조현성
相关产品推荐
相关产品推荐

