Python 通过Gmail API将CSV文件转换为PDF文件

Python 通过Gmail API将CSV文件转换为PDF文件,python,pandas,gmail-api,google-apis-explorer,Python,Pandas,Gmail Api,Google Apis Explorer,我正在尝试通过Users.messages.attachments:get方法(1)从Gmail API导出csv文件,并将其转换为数据帧。我已经有了附件的ID和消息的ID,一切正常。文档中说附件的主体数据是“base64url编码字符串的一部分”(2),现在我想将csv文件转换为熊猫数据帧。在此之后,我尝试了以下方法: [……] 这就是打印(数据)的样子: \u5AguacGBAgMaaAB0AcaagB1AcaaqB1AgsadABPag8AbgZagqayQb0AgaBhagBhagBha

我正在尝试通过Users.messages.attachments:get方法(1)从Gmail API导出csv文件,并将其转换为数据帧。我已经有了附件的ID和消息的ID,一切正常。文档中说附件的主体数据是“base64url编码字符串的一部分”(2),现在我想将csv文件转换为熊猫数据帧。在此之后,我尝试了以下方法:

[……]

这就是
打印(数据)
的样子:

\u5AguacGBAgMaaAB0AcaagB1AcaaqB1AgsadABPag8AbgZagqayQb0AgaBhagBhagBhagBhagBhagBhagBhagBhagBhagBhagBhagBhagBhagBhagBhagBhagBhagBhagBhagBhagBhagBhagBhagBhagBhagBhagBhagBhagBhagBhagBhagBhagBhagBhagBhagBhagBhagBhagBhagBhagBhagBhagBhagBhagBhagBhagBhagBhagBhagBhagBhagBhagBhagBhagBhagBhagBhagBAHACGBLAHMACWBPAG8ABGBLAG4ACQDCAGIAZQBYAHMAYWBOAG4AZQBPAGQADQBUAGACWBYAGADABLAKAUGBHAHQAZQAGAGQAZQBY
等等

很遗憾,我收到以下错误消息:

有没有人知道我如何解决这个问题,或者可以解释为什么它不起作用

(1) 看


(2) 请参见错误的直接原因是
base64。urlsafe\u b64decode
返回字节字符串。您必须首先对其进行解码,以获得将传递给
StringIO
的真实字符串:

str_csv = base64.urlsafe_b64decode(data).decode('UTF16')
但请注意:您显示的编码字符串在解码时给出:

'Bericht zu Auktionsdaten für Kampagnen\n1. Januar 2020 - 31. Januar 2020\nGerät\tDomain der angezeigten URL\tAnteil an möglichen Impressionen\tÜberschneidungsrate\tRate der'
即:

  • 2个标题行
  • 1行包含制表符

我认为在输入
read_csv
之前需要进一步处理(至少跳过一些行并设置分隔符…

如果我像您建议的那样处理str_csv,并将其传递给StringIO并将该对象命名为str_csv_IO,则会发生以下情况:如果我将str_csv_IO传递给pd.read_csv,python会抛出一个错误。为什么呢?我第一次使用base64和StringIO模块,很抱歉我提出了太明显的问题。@MoritzWolff:您显示的数据的开头暗示了附件不是一个干净整洁的CSV文件。您应该打印
str_csv
(至少10行),并告诉您希望如何为数据帧提供数据。我没有足够的信息来猜测更多。。。
'Bericht zu Auktionsdaten für Kampagnen\n1. Januar 2020 - 31. Januar 2020\nGerät\tDomain der angezeigten URL\tAnteil an möglichen Impressionen\tÜberschneidungsrate\tRate der'