我正在尝试使用 Python 从 Azure DevOps 中的特定 Analytics 视图中检索数据。我能够列出所有可用视图,包括自定义共享/私有视图,但无法使用其 ID 从任何特定视图中获取实际数据。
我已尝试获取可用视图列表:我使用此 API 成功获取了自定义视图列表:
import requests
import pandas as pd
from requests.auth import HTTPBasicAuth
# Azure DevOps Configuration
organization = "xxx"
project = "xxx"
personal_access_token = "xxx"
# API to list Analytics Views
url = f"https://analytics.dev.azure.com/{organization}/{project}/_apis/analytics/views?api-version=7.1-preview.1"
auth = HTTPBasicAuth("", personal_access_token)
# Make API request
response = requests.get(url, auth=auth)
if response.status_code == 200:
data = response.json()
df = pd.DataFrame(data["value"])
print(df[["id", "name", "description"]]) # Show relevant columns
else:
print(f"Error fetching views: {response.status_code} {response.text}")
问题:获取视图 ID 后,我尝试使用以下方法获取数据:
view_id = "a26xxxxx-xxxx-xxx-xxxx-xxxxxxxx94b0" # Example View ID
url = f"https://dev.azure.com/{organization}/{project}/_apis/analytics/views/{view_id}/data?api-version=7.1-preview.1"
response = requests.get(url, auth=auth)
if response.status_code == 200:
data = response.json()
df = pd.DataFrame(data["value"])
print(df.head())
else:
print(f"Error fetching data from view: {response.status_code} {response.text}")
即使视图 ID 正确(从列表 API 验证),请求也会失败。
Error fetching data from view: 404
The controller for path '/xxx/_apis/analytics/views/a26xxxxx-xxxx-xxx-xxxx-xxxxxxxx94b0/data' was not found or does not implement IController.
我尝试调试的内容
- 在浏览器中检查 API - /analytics/views 端点正确列出了视图,但直接 /analytics/views/{view_id}/data 返回 404。
- 已验证的权限 - 我有分析视图的完全访问权限,并且可以在 Power BI 中加载它们。
- 检查视图是否为私有的 - 我尝试从 /analytics/views/PrivateViews 获取,但错误仍然存在。
- 尝试使用 OData – OData API 返回默认数据集,但未列出私有/自定义视图。
我需要什么帮助
- 是否有不同的 API 可以从自定义视图中获取数据?
- Power BI 如何使用 VSTS.AnalyticsViews 在内部访问这些视图?
- 还有其他方法可以通过 OData 查询这些视图吗?
- 我在 API 调用中是否缺少任何必需的参数?
它不支持通过 Azure DevOps API 使用其视图 ID 直接检索 Analytics 视图的结果。
Power BI 可以显示来自 Azure DevOps 的 Analytics 视图的结果,因为它使用 Azure DevOps 数据连接器,该连接器允许 Power BI 直接连接到 Analytics 视图。这些视图本质上是预定义的 OData 查询,可从 Azure DevOps 获取特定数据集。连接后,Power BI 会将 Analytics 视图中的数据导入其环境,并使用这些数据创建各种报告和可视化效果。
建议您构建 OData 查询以从 Analytics 服务中获取所需的数据。这涉及手动创建查询以复制 Analytics 视图的过滤器和条件。