【发布时间】:2021-12-09 09:33:44
【问题描述】:
我正在向 sql server 中插入一些代码,但一直遇到以下错误:
{
"errorMessage": 'str' object has no attribute 'uuid'"
"errorType": AttributeError",
"stackTrace": [
File \"/var/task/data_insert/clean_sweep.py\", line 17 , row.uuid\n"
]
}
我的代码如下:
client = boto3.client('s3')
my_bucket = 'data-staging'
data_filename = 'data_pull.csv'
insert_csv = client.get_object(Bucket = my_bucket, Key = data_filename)
data_body = insert_csv["body"]
csv_string = data_body.read().decode('utf-8')
data_df = pd.read_csv(StringIO(csv_string))
conn = pymssql.connect(server = 'rds_sqlserver.com', user='etl_xu',password = 'XU2014basketball', database = 'Xacation')
cursor = conn.cursor()
for row in data_df.itterrows():
cursor.execute('''INSERT INTO xac.staging(uuid, last_name, xac_account)
VALUES(?,?,?)
'''
, row.uuid
, row.last_name
, row.xac_account
)
我认为跳过第一行,因为它是标题会解决它,但事实并非如此。请帮忙!
【问题讨论】:
-
你在哪里跳过标题?如果您跳过标题,熊猫应该如何知道您有一个名为
uuid的列?您是否打印了data_df以查看您实际得到了什么? -
基于 Tim 的评论,有时对于 CSV,列名中有额外的空格。例如,检查您是否没有
"uuid "。 -
是的,所以我确实将我的代码更新为以下
for row in data_df[1:],以确保我得到下一行,但它仍然给我同样的错误,只是"errorMessage": 'str' object has no attribute 'uuid'"打印data_df时我得到@987654328 @,Vasquez, 0777848502 -
@26Cocktails:这不会有任何区别,因为每一行都有属性或没有属性。
-
@26Cocktails:
print(data_df.columns)也许?
标签: python pandas dataframe aws-lambda