gpt4 book ai didi

python - 在 Python 中处理 HTTP IncompleteRead 错误

转载 作者:太空宇宙 更新时间:2023-11-03 12:06:18 25 4
gpt4 key购买 nike

我试图了解如何处理下面代码中的 http.client.IncompleteRead 错误。我使用 this post 中的想法处理错误.基本上,我认为这可能只是服务器限制了我可以访问数据的次数,但奇怪的是,有时我得到的 HTTP 状态代码为 200,但下面的代码仍然返回 None类型。这是因为当错误出现时 zipdata = e.partial 没有返回任何东西吗?

def update(self, ABBRV):
if self.ABBRV == 'cd':
try:

my_url = 'http://www.bankofcanada.ca/stats/results/csv'
data = urllib.parse.urlencode({"lookupPage": "lookup_yield_curve.php",
"startRange": "1986-01-01",
"searchRange": "all"})

binary_data = data.encode('utf-8')
req = urllib.request.Request(my_url, binary_data)
result = urllib.request.urlopen(req)
print('status:: {},{}'.format(result.status, my_url))
zipdata = result.read()
zipfile = ZipFile(BytesIO(zipdata))

df = pd.read_csv(zipfile.open(zipfile.namelist()[0]))
df = pd.melt(df, id_vars=['Date'])

return df

#In case of http.client.IncompleteRead Error
except http.client.IncompleteRead as e:
zipdata = e.partial

谢谢

最佳答案

嗯...我已经运行你的代码 20 次而没有出现读取不完整的错误,你为什么不在读取不完整的情况下重试?或者另一方面,如果您的 IP 被阻止,那么他们不会返回任何东西是有道理的。您的代码可能如下所示:

maxretries = 3
attempt = 0
while attempt < maxretries:
try:
#http access code goes in here
except http.client.IncompleteRead:
attempt += 1
else:
break

关于python - 在 Python 中处理 HTTP IncompleteRead 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31056453/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com