从csv文件中提取特定列,并使用Python在Lambda中转换为字符串

问题描述 投票:0回答:1

我正在尝试从特定列中以逗号分隔的格式获取所有电子邮件地址。这来自Lambda中的csv临时文件。我的目标是将该文件保存在s3中,并且只有一列包含电子邮件地址。

这是我的代码:

#open file and extract email address
with open('/tmp/maillist.csv', 'w') as mail_file:
    wm = csv.writer(mail_file)
    mail_list = csv.reader(open('/tmp/filtered.csv', "r"))
    for rows in mail_list:
        ','.join(rows)
        wm.writerow(rows[3])
bucket.upload_file('/tmp/maillist.csv', key)

我希望得到这样的结果:

enter image description here

但是,相反,我得到这样的结果:

enter image description here

我也尝试过此代码:

#open file and extract email address
mail_list = csv.reader(open('/tmp/filtered.csv', "r"))
with open('/tmp/maillist.csv', 'w') as mail_file:
    wm = csv.writer(mail_file)
    wm.writerow(mail_list[3])
bucket.upload_file('/tmp/maillist.csv', key)

但我却收到此错误:

Response:
{
  "errorMessage": "'_csv.reader' object is not subscriptable",
  "errorType": "TypeError",
  "stackTrace": [
    "  File \"/var/task/lambda_function.py\", line 68, in lambda_handler\n     wm.writerow(mail_list[3])\n"

感谢您的任何帮助。

python-3.x amazon-s3 aws-lambda
1个回答
0
投票

问题1:

[','.join(rows)未分配给任何变量

问题2:

mail_list = csv.reader(open('/tmp/filtered.csv', "r"))上面的线表示mail_listcsvreader对象。您可以使用该对象读取行。

© www.soinside.com 2019 - 2024. All rights reserved.