从 github 读取 Excel 文件以在渲染上部署 dash 应用程序

问题描述 投票:0回答:1

我创建了一个破折号应用程序,并尝试部署该应用程序进行渲染。在此应用程序中,它读取多个 Excel 文件。在我的个人笔记本电脑上,它在本地读取文件。但我似乎无法正确地从 github 中读取文件。我不知道这是路径问题,还是根本问题是什么。

我遇到了各种错误并尝试了以下解决方案。 我尝试传递相对路径,例如 ssets"file_name.xlsx"。但是,渲染返回错误,表示不存在文件或路径。

然后我尝试传递网址和文件名 -

pd.read_excel("https://github.com/mtdewrocks/matchup/tree/072ac999722ded50e8b2eeb649c75f091a8ecbcb/assets/2024_Pitching_Logs.xlsx", usecols=["Name", "Date", "Opp", "W", "L", "IP", "BF", "H", "R", "ER", "HR", "BB", "SO","Pit"])
。但是,虽然它不会引发文件未找到错误,但我现在收到一个值错误,指出无法确定 Excel 文件格式,您必须手动指定引擎。

因此我将引擎指定为 openpyxl 并得到一个 BadZipFile - 文件不是 zip 文件。我了解此错误通常与损坏的文件有关;但是,它发生在多个文件上,并且文件在本地都很好,所以我不知道这就是问题所在。

最后,我发现了一个建议采用这种方法的问题:

url = "https://github.com/mtdewrocks/matchup/tree/072ac999722ded50e8b2eeb649c75f091a8ecbcb/assets/Pitcher_Season_Stats.xlsx"
data = requests.get(url).content
df = pd.read_excel(BytesIO(data))
python pandas github render plotly-dash
1个回答
0
投票

使用原始文件的 URL,而不是 Github 上页面的 URL。

在这种情况下,您要指定的网址是:“https://github.com/mtdewrocks/matchup/raw/072ac999722ded50e8b2eeb649c75f091a8ecbcb/assets/Pitcher_Season_Stats.xlsx”

这是将文件读取到数据帧所需的最少代码:

import pandas as pd

df = pd.read_excel("https://github.com/mtdewrocks/matchup/raw/072ac999722ded50e8b2eeb649c75f091a8ecbcb/assets/Pitcher_Season_Stats.xlsx")
© www.soinside.com 2019 - 2024. All rights reserved.