簡體   English   中英

如何使用來自 API 的 504 網關超時錯誤響應繼續 for 循環?

[英]How to continue a for loop with a 504 Gateway Timeout error response from an API?

我正在使用一個名為 lob 的包來標准化我擁有的地址數據集。 在運行了幾千個地址后,我一直收到 504 網關錯誤。 來自 Lob 的響應錯誤如下:

.......Traceback (most recent call last):
  File "verify_modified_v2.py", line 82, in <module>
    zip_code=row['zip_code'],
  File "C:\Users\******\Anaconda2\lib\site-packages\lob\resource.py", line 123, in create
    response = requestor.request('post', cls.endpoint, params)
  File "C:\Users\******\Anaconda2\lib\site-packages\lob\api_requestor.py", line 84, in request
    requests.post(lob.api_base + url, auth=(self.api_key, ''), data=data, files=files, headers=headers)
  File "C:\Users\******\Anaconda2\lib\site-packages\lob\api_requestor.py", line 27, in parse_response
    resp.content, resp.status_code, resp)
lob.error.APIConnectionError: {
    "error": {
        "message": "GATEWAY_TIMEOUT",
        "status_code": 504
    }
}

我試圖排除這個錯誤,以便我的代碼可以反復聯系 lob 直到它可以通過而沒有網關錯誤:

for idx, row in enumerate(input_csv):
        try:
            verifiedAddress = lob.USVerification.create(
                primary_line=row['primary_line'],
                secondary_line=row['secondary_line'],
                city=row['city'],
                state=row['state'],
                zip_code=row['zip_code'],
            )

            if verifiedAddress.deliverability in success_deliverabilities:
                success_csv.writerow({
                    'primary_line': verifiedAddress.primary_line,
                    'secondary_line': verifiedAddress.secondary_line,
                    'urbanization':  verifiedAddress.urbanization,
                    'last_line':  verifiedAddress.last_line,
                    'deliverability': verifiedAddress.deliverability,
                    'identifier': row['identifier'],
                    'status': row['2']
                })
            else:
                failure_csv.writerow({
                    'primary_line': row['primary_line'],
                    'secondary_line': row['secondary_line'],
                    'city':  row['city'],
                    'state':  row['state'],
                    'zip_code':  row['zip_code'],
                    'deliverability': verifiedAddress.deliverability,
                    'identifier': row['identifier'],
                    'status': row['2']
                })

            # Print success
            sys.stdout.write('.')
            sys.stdout.flush()

             # New lines for larger csv's
            if idx % 10 is 9:
                sys.stdout.write('\n')
                sys.stdout.flush()

        except lob.error.APIConnectionError:
            print "caught error"

網關錯誤似乎無法“排除”; 有沒有人對解決這個問題有任何想法?

我的最終目標是這樣的:

  1. 繞過錯誤。
  2. 記錄錯誤。
  3. 繼續 csv 文件的下一行。

謝謝。

如果有幫助,請找到一篇延長超時錯誤之前時間的文章... 我該怎么做才能修復 504 網關超時錯誤? 第二個答案

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM