gpt4 book ai didi

Python Pandas 处理 308 请求

转载 作者:行者123 更新时间:2023-12-04 13:36:45 25 4
gpt4 key购买 nike

在尝试将英格兰的 Covid_19 数据读入 Pandas 时,我尝试使用 PHE https://coronavirus.data.gov.uk/downloads/csv/coronavirus-cases_latest.csv 提供的 URL但是,此文件需要 http 308 重定向。我尝试了优雅的解决方案:

import pandas as pd
tabel = pd.read_csv('https://coronavirus.data.gov.uk/downloads/csv/coronavirus-cases_latest.csv')

这会引发错误 HTTPError: HTTP Error 308: Permanent Redirect
但是,该 URL 的作用是
import pandas as pd
import requests
import io
datastr = requests.get('https://coronavirus.data.gov.uk/downloads/csv/coronavirus-cases_latest.csv',allow_redirects=True).text
data_file = io.StringIO(datastr)
table = pd.read_csv(data_file)

给出了想要的结果。

我想要类似于第一个解决方案的东西,这是 Pandas 的问题还是我做错了什么?

最佳答案

查看 Pandas 源,它使用 urllib.request.urlopen() 并且文档建议它应该在有意义的地方遵循重定向。
但是,根据 https://www.rfc-editor.org/rfc/rfc7231,308 不是定义的重定向代码。 ,所以 urllib 会抛出异常,因为它不知道该怎么做。 requests 库更宽容一些。
回复说“永久重定向”,但看着狡猾的托管,我怀疑这真的是什么意思。
我认为出版商搞砸了,所以除了你有的解决方法之外,我不会花太多时间。
请注意,请求确实可以让您获得可以传递给 pd.read_csv() 的原始流:

r = requests.get('https://coronavirus.data.gov.uk/downloads/csv/coronavirus-cases_latest.csv', stream=True)
pd.read_csv(r.raw)

关于Python Pandas 处理 308 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61415090/

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