Запись списка словарей непосредственно в S3 как csv - PullRequest
0 голосов
/ 13 февраля 2020

У меня есть список словарей, таких как temp_dict = [{'id':'1', 'name':'john'},{'id':'2', 'name':'jake'},{'id':'3', 'name':'jacob'}] Есть ли способ, с помощью которого я могу напрямую записать этот словарь в виде файла csv (с разделителями каналов) на S3. Я не хочу создавать файл CSV на моем локальном компьютере из этого списка, а затем скопировать его в S3.

Ответы [ 2 ]

1 голос
/ 13 февраля 2020

Я думаю, что это было бы полезно:

import csv

class Pipe:
    value = ""
    def write(self, text):
        self.value = self.value + text

temp_dict = [{'id':'1', 'name':'john'},{'id':'2', 'name':'jake'},{'id':'3', 'name':'jacob'}]

pipe = Pipe()
writer = csv.DictWriter(pipe, temp_dict[0].keys())
for entry in temp_dict:
    writer.writerow(entry)

print(pipe.value)
1,john
2,jake
3,jacob

По сути, мы пишем класс для имитации файлового объекта в режиме записи, затем создаем экземпляр и передаем его в DictWriter. В конце мы получаем текст CSV из pipe.value.

0 голосов
/ 13 февраля 2020

Это может решить вашу проблему.

Преобразовать объект в памяти в двоичный поток и перейти на s3 с помощью boto3.

Как записать файл или данные в S3 объект с использованием boto3

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...