无法将 CSV 写入 Dropbox APP V2 - CSV 显示为空白

Unable to write a CSV into Dropbox APP V2 - CSV appears blank

我正在尝试将脚本的输出 (pandas df) 上传到 Dropbox 文件夹中,但在 Dropbox 中创建的 csv 文件显示为空白。

dbx.files_upload(cvd_tracker.to_csv("Trial.csv"),'/Trial.csv')

我猜 .to_csv() 在这里不适用,但我不知道该怎么做。我已经检查过了,“cvd_tracker”数据框里面确实有数据。

使用 StringIO 也失败了。

from io import StringIO
csv_buffer = StringIO()
cvd_tracker.to_csv(csv_buffer)

dbx.files_upload(csv_buffer.getvalue(),'/Trial3.csv')

dbx.files_upload 有两个必需参数,第一个是类文件对象或类字节对象,第二个是用户保管箱中保存文件的路径。你的第二个参数看起来没问题,但你的第一个参数不正确 - pandas.Dataframe.to_csv returns 一个字符串,如果传递给它的第一个参数是 None,或者它 returns None 如果第一个参数不是 None。您传递给 cvd_tracker.to_csv 的第一个(也是唯一一个)参数是 "Trial.csv",因此 cvd_tracker.to_csv("Trial.csv") returns None。这基本上意味着你在做 dbx.files_upload(None, "/Trial.csv").

要获得所需的结果,只需删除传递给 cvd_tracker.to_csv 的参数,使其成为 returns 字符串。然后,您需要使用 str.encode 将字符串转换为类似字节的对象,以便 dbx.files_upload 可以接受它。它看起来像这样:

dbx.files_upload(cvd_tracker.to_csv().encode(), "/Trial.csv")