重试来自返回错误的API的请求

时间:2020-02-20 10:58:20

标签: python pandas api

我正在从API请求数据,该API偶尔会返回后端错误。我有一个标识符列表,该标识符按索引传递给api函数以检索其各自的数据。返回的数据帧已存储。

x=0
while x <= 13000:
    file_checked = Path("path\\%05d.pkl" % (x))

    if file_checked.is_file():
        print(str(x) + list_of_identifiers[x])
        x += 1

    else:
        identifier = list_of_identifiers[x]
        data = apifunction

        data.to_pickle("path\\\\%05d.pkl" % (x))
        print(str(x) + list_of_identifiers[x])
        x += 1

print命令仅给我有关进度的视觉反馈。检查文件是否存在使我更容易重新启动循环,因为在循环中断时不必手动设置x。

这是我的大问题。循环中断。有时,服务器会返回各种不同类型的后端错误(可能围绕着三个不同的错误代码)。

有人可以帮助我使此代码(或替代方法)对所提到的错误更可靠吗?它应该简单地重试相同的“ x”,然后继续。我应该提到,根据我的经验,错误似乎是任意发生的,这使人们极不可能陷入无休止的重试循环中。 尽管我找到了有关该主题的几篇文章,但无法将其转移到我的问题上。

1 个答案:

答案 0 :(得分:0)

有人可以评论我当前的解决方案吗?

x=0
while x <= 13073:
    file_checked = Path("path\\%05d.pkl" % (x))

    if file_checked.is_file():
        x += 1

    else:
        while x <= 13073:
            try:
                identifier  = list_of_identifiers[x]
                data = apifunction
                data.to_pickle("path\\%05d.pkl" % (x))
                x += 1
            except:
                print("Error")
                continue