python - Lambda 无法将 CSV 导入 RDS SQL Server
问题描述
我正在将文件从 s3 存储桶导入 SQL Server。获取文件没有问题,但是当我尝试将其导入 SQL 时,我不断收到以下错误:
errorMessage": "(207, b"无效的列名 'nan'.DB-Lib 错误消息
我的代码如下所示:
client = boto3.client('s3')
my_bucket = 'address/staging'
filename = 'anjou_mailing_list.csv'
subscriber_csv = client.get_object(Bucket = my_bucket, Key = data_filename)
data_body = subscriber_csv["body"]
csv_string = data_body.read().decode('utf-8')
sub_df = pd.read_csv(StringIO(csv_string), sep = ',')
#Make db connection
conn = pymssql.connect(server = 'rds_sqlserver.com', user='username',password = 'my_password', database = 'mixology')
cursor = conn.cursor()
for index, row in sub_df.itterrows():
cursor.execute('''INSERT INTO dbo.anjou_class(firstname,lastname, email, street, city, state, zip, country_code)
VALUES(%s,%s,%s,%s,%s,%s,%s,%s)
'''
, (row['f_name']
, row['lname']
, row['email_address']
, row['street_ad']
, row['city']
, row['state']
, row['zip']
, row['country'])
)
cursor.commit()
示例 csv 如下所示:
John,Doe,fakemail@gmail.com,Greenleaf CT,APT 204,Aurora,OH,48736,,
Beatrice,Winncons,heremail@gmail.com,2018 crafters,Shelbyville,IN,60505,,
我没有收到 synatx 错误,当我在本地运行代码时,我的数据正在输入。但是当我将它作为 lambda 函数运行时,它会倒下。我认为公寓地址需要一个引号字符,所以我添加了一个更改 sub_df =pd.read_csv(StringIO(csv_string), sep = ',', quotechar = '"')
但这似乎也失败了。
提前致谢
解决方案
推荐阅读
- python - 如何使 QTreeView 显示超过 10 行
- excel - 如何计算具有多个变量的重复购买率
- bfg-repo-cleaner - 使用 BFG Cleaner 删除历史记录不起作用
- php - 数组推送仅在使用值预定义数组时有效
- umbraco - 使用 GitHub Desktop 克隆 umbraco 项目
- tensorflow - 无法使用非浮点 dtype 错误构建“密集”层
- r - 如何在 R 中使用 Caret 包进行训练、验证和测试?
- node.js - 退出前的 Console.log 页面内容
- css - Tailwind CSS 响应式断点覆盖不起作用
- java - Java BigInteger nextProbablePrime 方法如何工作?