我正在尝试使用 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 调用中是否缺少任何必需的参数?