python - 获取电子邮件问卷的正文并将答案提取到 .csv
问题描述
我可以登录我的电子邮件,在我的收件箱中搜索任何未读邮件,并打印未读邮件的正文,但我正在尝试将我的问卷答案写入 pandas 数据框。我收到问卷时的电子邮件示例:
name --- Brook Yohohoho :::
email --- deeew32@yahoo.com :::
mobile --- 123-458-9463 :::
总共有 24 个问题。
我检索电子邮件并尝试将其写入 csv 部分的代码是:
try:
for num in data[0].split():
typ, msg_data = conn.fetch(num, '(RFC822)')
for response_part in msg_data:
if isinstance(response_part, tuple):
msg = email.message_from_string(response_part[1])
subject=msg['subject']
print(subject)
payload=msg.get_payload()
body=extract_body(payload)
print(body)
df = pd.DataFrame(eval(body), delimiter = '[,,,:::]', columns = ['name', 'email', 'mobile'])
df.to_csv("questionnaire.csv", delimiter = ',')
print(df)
typ, response = conn.store(num, '+FLAGS', r'(\Seen)')
我只想将问题的答案写到数据框。电子邮件的正文不会写入数据框,我收到错误:
Traceback (most recent call last):
File "email3.py", line 27, in <module>
df = pd.DataFrame(eval(body), delimiter = '[,,,:::]', columns = ['name', 'email', 'mobile'])
File "<string>", line 1
name --- Brook Yohohoho :::
^
SyntaxError: invalid syntax
旁注**** 发送至此电子邮件地址的所有电子邮件都将作为调查问卷的答案。如有必要,可以更改发送电子邮件的格式。例如,电子邮件的每一行不是“名称 --- Brook Yohohoho :::”,而是可以更改为名称“Brook Yohohoho”等。
解决方案
推荐阅读
- javascript - 'X' is not a function - error in Javascript
- julia - parabolic_squaremesh 未在微分方程中定义
- rust - 如何在 actix_web 示例代码中提取变量?
- c++ - 程序 _free_dbg(block, _UNKNOWN_BLOCK) 出错
- java - 如何通过 Java 连接在 Azure Cloud 上运行的 Dynamics CRM 2016 实例?
- regex - 重复捕获分隔字符串中的子字符串
- angular - 角度图像缩放悬停效果
- powershell - 从 Json 对象中检索值,其字段在 powershell 中具有点和连字符
- node.js - 快速服务器的 axios 响应中未填充“数据”字段
- javascript - 如何在geoJSON中添加标签和标题到点(标记),一旦加载就会显示在谷歌地图上