You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python使用TM1py连接TM1报'NoneType'无text属性错误如何解决

TM1py连接报错AttributeError: 'NoneType' object has no attribute 'text'解决方法

报错原因定位

该错误出现在TM1py初始化会话阶段,向TM1服务发送请求后未收到有效响应对象,导致尝试读取响应的text属性时失败。

可行解决步骤

  • 调整SSL相关配置
    绝大多数TM1实例的默认HTTP端口(如你使用的85端口)未启用SSL,优先尝试将ssl=True修改为ssl=False测试。如果确认服务端启用了SSL,有两种处理方案:
    1. 将TM1服务的自签名证书导入新VM的系统受信任根证书库
    2. 在TM1Service参数中添加verify=False临时跳过证书校验(生产环境不推荐)
  • 修正参数命名规范
    TM1py官方要求的实例名参数为server,你当前使用的Servers属于不规范写法,部分版本可能存在兼容性问题,建议修改为server="serverName"
  • 跳过本地代理拦截
    即使系统代理配置和旧VM一致,也可能存在IP级别的代理规则异常,在代码开头添加如下配置,强制TM1请求不走代理:
    import os
    os.environ['NO_PROXY'] = '11.22.33.123'
    
  • 验证应用层请求连通性
    之前的网络连通性测试仅能验证网络层通畅,无法确认HTTP请求是否被防火墙、EDR、杀毒软件等应用层规则拦截,在新VM的CMD中执行如下命令验证API可访问性:
    # SSL关闭时执行
    curl http://11.22.33.123:85/api/v1/$metadata
    # SSL开启时执行
    curl https://11.22.33.123:85/api/v1/$metadata -k
    
    如果返回XML格式的元数据内容说明API可正常访问,否则需要排查应用层拦截规则。

修改后的参考测试代码

import os
os.environ['NO_PROXY'] = '11.22.33.123'
from TM1py.Services import TM1Service
from TM1py.Utils.Utils import build_pandas_dataframe_from_cellset

# with语句会自动管理会话,无需手动调用logout
with TM1Service(address="11.22.33.123", server="serverName", port=85, 
                user='activeuser', password='correctpassword', 
                ssl=False, verify=False) as tm1:
    data = tm1.cubes.cells.execute_view(cube_name="CubeName", view_name="ViewName", private=True)
    df = build_pandas_dataframe_from_cellset(data, multiindex=False)

df.to_csv(r'D:\data.csv', index=False, header=True)

内容的提问来源于stack exchange,提问作者ViforSmph

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 13:45:03