Запись с CSV в GCSF в корзину содержит пустые строки и не будет обнаружена в Google Data Studio - PullRequest
0 голосов
/ 15 января 2019

Я экспортирую некоторые внутренние данные аналитики и продаж и хочу преобразовать их в .csv и показать их в Google Data Studio. GCP, особенно App Engine и Storage - отличное решение для cronjobs, например.

Я написал функцию для получения значений и ключей предоставленного JSON. Написать CSV на моей локальной машине не было большой проблемой. В конце концов, я работал с «пандами» и DataFrame.

Для автоматизации я хотел, чтобы он каждую ночь загружал его в облачное хранилище Google для обновления графиков в Data Studio, но в App Engine не получается записать локальный файл и затем поместить его в хранилище.

Итак, я прочитал немного о Dask и приземлился GCSF и получил следующий код:

заголовок и значения оба списка () for_file - фактическая дата

def upload(header, values):
    fs = gcsfs.GCSFileSystem(project='PROJECT-ID')
    fs.ls('BUCKET')
    with fs.open('BUCKET/FOLDER/_'+ for_file +'.csv','w', consistency='string') as f:
        writer = csv.writer(f, delimiter=',')
        writer.writerow(header)
        for row in values:
            writer.writerow(row)
        fs.du('BUCKET/FOLDER/_'+ for_file +'.csv')

Вывод - файл .csv, но есть пустые строки, и при ручной загрузке в качестве источника данных я получил эту ошибку:

Row 7: File contians unexpected character. Only characters with UTF-8 are allowed

Строка 7:

831,2019-01-14T08:00:00+0000,Blätter/Bach

как и в стандартном открытом Python 3, я попробовал это с encoding = 'UTF-8', а для пустой строки я попробовал это с newline = '', оба являются неожиданным аргументом ключевого слова.

...