Я экспортирую некоторые внутренние данные аналитики и продаж и хочу преобразовать их в .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 = '', оба являются неожиданным аргументом ключевого слова.