Python: Как преобразовать файл CSV, хранящийся в потоке байтов, в список? - PullRequest
0 голосов
/ 31 марта 2020

Я пытаюсь получить файл CSV из Azure Озеро данных Gen2, а затем выполнить некоторые операции с каждой строкой. Однако требуется не загружать файл в физическое местоположение. И поэтому я использую file_client.download_File().readAll() для получения файла в байтовом потоке.

Однако я не могу разбить строки / столбцы файла и получить их в список.

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

ЧТО ДЕЛАТЬ С ЭТИМ ПОТОКОМ?

Однако я могу сделать это с загруженным файлом, используя WITH OPEN () AS CSV, а затем использовать этот CSV-поток в csv.reader()

Может кто-нибудь помочь с Обработка этого потока?

1 Ответ

0 голосов
/ 17 апреля 2020

Позднее обновление, с которым мне удалось решить эту проблему путем преобразования загруженного потока в текстовый ввод-вывод. (не нужно было преобразовывать его в List, так как Pandas Dataframe был лучшим вариантом)

Вот фрагмент кода, который работал:

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

Здесь file_client - это соединение с Azure Озеро данных, где хранится CSV-файл. Код загружает файл в виде потока в памяти и загружает его в информационный кадр. (Нет необходимости записывать его в локальный файл)

...