Я нашел этот документ на posit, но пример не позволяет отобразить таблицу в приложении (даже на веб-сайте).
Я пытался просто отобразите pd.read_csv(input.file()[0]["datapath"]) в def summary(), но я не уверен, как получить доступ к этому ключу словаря "datapath", связанному с ввод.
Я также попробовал этот код ниже.
Код: Выделить всё
import pandas as pd
from shiny import App, Inputs, Outputs, Session, reactive, render, ui
from shiny.types import FileInfo
app_ui = ui.page_fluid(
ui.input_file("file1", "Choose CSV File", accept=[".csv"], multiple=False),
ui.output_table("summary"),
)
def server(input: Inputs, output: Outputs, session: Session):
@reactive.calc
def parsed_file():
file: list[FileInfo] | None = input.file1()
if file is None:
return pd.DataFrame()
return pd.read_csv( # pyright: ignore[reportUnknownMemberType]
file[0]["datapath"]
)
@render.table
def summary():
df = parsed_file()
if df.empty:
return pd.DataFrame()
return df.head()
app = App(app_ui, server)
До сих пор я читал файл csv. с pandas перед созданием приложения, но я хочу, чтобы пользователь загрузил файл, чтобы это решение больше не работало.
Моя блестящая версия: 0.10.2
Версия pandas: 2.2 .2
Питон: 3.12.1
Подробнее здесь: https://stackoverflow.com/questions/787 ... input-file