widgets.FileUpload - 阅读上传的 CSV

widgets.FileUpload - Read the uploaded CSV

我正在使用 widgets.FileUpload 将 CSV 上传到 jupyter 并阅读。我正在使用下面的哟上传。

input_file = widgets.FileUpload(
    accept='.csv',  # Accepted file extension e.g. '.txt', '.pdf', 'image/*', 'image/*,.pdf'
    multiple=False  # True to accept multiple files upload else False
)

input_file

我已经上传了文件,当我打印时print(input_file.value)我可以看到数据。

但是当我通读 data = pd.read_csv(input_file.value, encoding = "ISO-8859-1") 我看到下面的错误

ValueError: Invalid file path or buffer object type: <class 'dict'>

请指点。

input_file.value 通常是一个字典元组,因此您需要访问实际的文件数据。如果您只上传了一个文件,这可能在 input_file.value[0]['content'] 下。试试这个:

import codecs
uploaded_file = list(input_file.value.values())[0]
csv_text = codecs.decode(uploaded_file.content)
data = pd.read_csv(csv_text)

查看此处了解更多信息:https://ipywidgets.readthedocs.io/en/latest/examples/Widget%20List.html#File-Upload