如何从Gmail API返回的消息字典中提取id字段?
解决Gmail API返回字典提取'id'字段的问题
你的代码已经正确获取到了包含消息ID的字典,提取'id'字段其实很直接,用字典的键访问语法就能实现:
修改后的代码示例
def find_thread_id(email_to): service= get_service() user_id = 'me' threadlist = service.users().messages().list(userId=user_id, maxResults='20', q=email_to).execute() # 先检查是否有匹配的邮件,避免索引错误 if 'messages' not in threadlist or not threadlist['messages']: return None thread = threadlist['messages'] return thread thread_id = find_thread_id('in:sent to:partners@ziptransfers.com subject:TEST THREAD FOR EMAILS') # 判断是否获取到有效数据 if thread_id: # 提取id字段并存入变量 message_id = thread_id[0]['id'] print(f"提取到的消息ID: {message_id}") else: print("未找到匹配的邮件")
关键说明
- 你打印的
thread_id[0]就是目标字典,直接通过['id']即可取出对应的值,比如thread_id[0]['id']会得到'185359cbd4ea2a50' - 新增了空值检查逻辑,防止没有匹配到邮件时触发
IndexError或KeyError
内容的提问来源于stack exchange,提问作者ElPana
相关产品推荐
相关产品推荐

