Я загружаю файл csv из вложения gmail, используя приведенный ниже код. Сгенерированный выходной файл выглядит как ^ Я разграничил, и я не уверен, как изменить его на какой-либо другой разделитель, чтобы я мог загрузить его в кадр данных pandas.
message = service.users().messages().get(userId=user_id, id=msg_id).execute()
for part in message['payload'].get('parts', ''):
if part['filename']:
file_name = part['filename']
att_id = part['body']['attachmentId']
att = service.users().messages().attachments().get(userId=user_id, messageId=msg_id,
id=att_id).execute()
data = att['data']
file_data = base64.urlsafe_b64decode(data.encode('UTF-8'))
with open(path, 'wb') as f:
f.write(file_data)
Содержимое выходного файла разделено, как показано ниже -
ID местоположения ^ IP-код обработанной валюты ^ IExternal MID ^ Имя IDBA
Редактировать 1:
Теперь я использую tab как разделитель, но получаю другую ошибку при чтении файла в dataframe. Возможно, это как-то связано с urlsafe_b64decode или data.encode ('UTF-8'), но я не в состоянии понять. Фактический файл вложения в gmail - это файл, разделенный табуляцией.
UnicodeDecodeError: кодек «utf-8» не может декодировать байт 0xff в позиции
0: неверный начальный байт