【问题标题】:Python : How to convert a CSV file stored in Byte stream to a List?Python:如何将存储在字节流中的 CSV 文件转换为列表?
【发布时间】:2020-03-31 09:19:13
【问题描述】:

我正在尝试从 Azure Data Lake Gen2 获取 csv 文件,然后对每一行执行一些操作。但是,要求是不要将文件下载到物理位置。因此,我使用file_client.download_File().readAll() 来获取字节流中的文件。

但是,我无法拆分文件行/列并将它们放入列表中。

 x = file_client.download_file()
 bystream = x.readall()

如何处理这个 bystream ?

但是,我可以使用 WITH OPEN () AS CSV 下载文件,然后在 csv.reader() 中使用此 CSV 流

有人可以帮忙处理这个字节流吗?

【问题讨论】:

  • readall() 方法只是下载整个文件。然后用 pandas.read_csv() 不就行了吗?
  • 谢谢 Isuru,pandas.read_csv() 是个好主意!

标签: python python-3.x list csv bytestream


【解决方案1】:

我能够通过将下载的流转换为文本 I/O 来解决此问题的最新更新。 (不需要将其转换为 List,因为 Pandas Dataframe 是更好的选择)

这是有效的代码 sn-p :

 stream = io.StringIO(file_client.download_file().readall().decode("utf-8"))
 dataframe1 = pd.read_csv(stream, sep= "|")

在这里,file_client 连接到存储 csv 文件的 Azure Data Lake。 该代码将文件作为内存中的流下载,并将其加载到数据帧中。 (无需将其写入本地文件位置)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-07-11
    • 1970-01-01
    • 1970-01-01
    • 2016-01-15
    • 2020-02-01
    • 2013-08-13
    • 2021-03-27
    • 1970-01-01
    相关资源
    最近更新 更多