开发者问题收集

为什么运行脚本时会出现“KeyError:‘data’”错误?

2022-02-24
1034

我正在使用 Tableau Prep Builder 运行一个 Python 脚本,该脚本从名为 Supermetrics 的数据连接器中提取 API。我正在密切关注他们的教程,该教程位于 此处 。当我运行脚本时,我收到此消息:

System error: Something went wrong when running the script. Verify that there are no errors in the script, then try again. KeyError : 'data'

这是脚本:

import requests
import pandas as pd
def get_data_to_flow(input):
    response = requests.get("[PLACEHOLDER FOR YOUR API LINK]")
    results = response.json()
    return pd.DataFrame(results['data'][1:], columns=results['data'][0])

脚本最初可以正常工作,但第二天运行后,我开始看到此错误。我完全按照教程操作,并使用了可以正常工作的 API 链接。这个错误是什么意思?我该如何修复它?

1个回答

因为 results (一个字典)不包含键 data 。您没有检查 API 是否返回有效数据。

如果 API 返回错误,则在响应上调用 raise_for_status() 以获取错误。

除此之外,也许没有错误,并且自上次使用以来返回的数据的形状发生了变化?

import requests
import pandas as pd

def get_data_to_flow(input):
    response = requests.get("[PLACEHOLDER FOR YOUR API LINK]")
    response.raise_for_status()
    results = response.json()
    data = results['data']
    return pd.DataFrame(data[1:], columns=data[0])
AKX
2022-02-24