能否通过Xero-Python API修改Xero资产?实现遇阻求助
Xero草稿资产更新问题修复方案
代码中的核心问题
- 注释掉了实际发起API请求的语句,仅将API方法赋值给变量
api_akt,未执行任何请求 - 打印的
api_response变量未定义,会触发NameError - 使用了错误的API方法:
create_asset用于创建新资产,更新现有草稿资产需调用update_asset
修复后的代码
def xero_create_asset(viper_asset): asset_api = AssetApi(api_client) xero_tenant_id = get_xero_tenant_id() serial_number = 'serial_number' # 替换为目标草稿资产的真实ID xero_id = '真实的资产ID' asset_name = 'Test' asset = Asset( asset_id=xero_id, asset_name=asset_name, asset_number=viper_asset['asset_id'], serial_number=serial_number ) try: # 调用更新草稿资产的API方法 api_response = asset_api.update_asset(xero_tenant_id, xero_id, asset) print(api_response) return api_response except Exception as e: print(f"更新资产失败: {str(e)}") raise
关键注意事项
- API方法匹配:Xero Python SDK中,
update_asset才是用于更新现有资产(包括草稿状态)的方法,需传入租户ID、目标资产ID、更新后的Asset对象 - 资产ID正确性:
xero_id必须是对应草稿资产的真实ID,不能用硬编码的占位字符串 - 异常排查:添加异常捕获可直接获取API返回的错误信息,便于定位问题(比如权限不足、资产状态非草稿、字段不符合要求等)
内容的提问来源于stack exchange,提问作者Jarred Asquith
相关产品推荐
相关产品推荐

