【发布时间】:2021-12-09 12:43:12
【问题描述】:
我有一个数据框,我正在尝试循环以将数据插入到一个和 rds 数据库中,我的 aws-lambda 函数返回了以下错误:
[ERROR] AttributeError: 'tuple' 对象没有属性 'user_id'
我的代码很简单,我从 s3 存储桶中读取一个文件,对其进行解码,将其读入内存并循环遍历每一行。
mycsv = client.get_object(Bucket = aml_bucket, Key = file_name)
bc_body = mycsv['Body']
csv_string = bc_body.read().decode('utf-8')
df = pd.read_csv(StringIO(csv_string))
for row in df.iterrows():
cursor.execute('''insert into new_table(user_id, first_name)
VALUES(?,?)'''
row.user_id,
row.first_name)
我已将其从我的 s3 中删除并在本地运行以进行打印,它会打印值。我从第 6 行开始打印值。当我尝试将它插入到表中时,它在我的 lambda 函数中掉了下来。请帮忙
【问题讨论】:
-
iterrows()返回一个元组(row_index, row)。在迭代期间拆分它for index, row in df.iterrows(): -
我必须在 for 循环中调用 index 吗?
-
您不需要使用
index,只需解压即可。目前row实际上是(row_index, actual_row)所以index, row = (row_index, actual_row) -
我不明白,你介意给我举个例子吗?
-
将
for row in df.iterrows()替换为for index, row in df.iterrows():。什么都不改变..
标签: python sql-server aws-lambda amazon-rds