我试图写入一个名为Key='CSV/ccc_master_circuit.CSV'的CSV文件,我在S3中的bucket名称是cenicbucket1。如果client.put_object语句中只有一列,则我能够写入ccc_master_circuit.csv而不会出错
只有当我尝试使用多个列编写时,才会出现下面的错误。我还试图在CSV文件中写入多行内容
以下是Lambda运行错误(在调用之后)
{
"errorMessage": "Syntax error in module 'lambda_function': invalid syntax (lambda_function.py, line 135)",
"errorType": "Runtime.UserCodeSyntaxError",
"stackTrace": [
" File \"/var/task/lambda_function.py\" Line 135\n client.put_object(Body=ccckeyid prjstatus cenic_status cenic_internal telco cenic_imp_jira order_date deliv_date cpe_date ops_ready mig_complete disco_date usg_track_sw crickusage Project_Value_HiLvl cirid, Bucket='cenicbucket1', Key='csv/ccc_master_circuit.csv')\n"
]
}
我的Lambda函数运行的是Python 3.8代码。在for循环中调用def create_csv运行iterable时,我还需要编写多行代码
快速工作流程简介
def create_csv(ccckeyid, prjstatus, cenic_status, cenic_internal, telco, cenic_imp_jira, order_date, deliv_date, cpe_date, ops_ready, mig_complete, disco_date, usg_track_sw, crickusage, Project_Value_HiLvl, cirid):
print("Creating CSV...")
try:
encoded_ccckeyid = ccckeyid.encode("utf-8")
except:
print("encoded_ccckeyid is NonType. Skipping ...")
return
encoded_prjstatus = prjstatus.encode("utf-8")
encoded_cenic_status = cenic_status.encode("utf-8")
encoded_cenic_internal = cenic_internal.encode("utf-8")
encoded_telco = telco.encode("utf-8")
encoded_cenic_imp_jira = cenic_imp_jira.encode("utf-8")
encoded_order_date = order_date.encode("utf-8")
encoded_deliv_date = deliv_date.encode("utf-8")
encoded_cpe_date = cpe_date.encode("utf-8")
encoded_ops_ready = ops_ready.encode("utf-8")
encoded_mig_complete = mig_complete.encode("utf-8")
encoded_disco_date = disco_date.encode("utf-8")
encoded_usg_track_sw = usg_track_sw.encode("utf-8")
encoded_crickusage = crickusage.encode("utf-8")
encoded_Project_Value_HiLvl = Project_Value_HiLvl.encode("utf-8")
encoded_cirid = cirid.encode("utf-8")
#Create CSV file in S3 bucket
ccckeyid = encoded_ccckeyid
prjstatus = encoded_prjstatus
cenic_status = encoded_cenic_status
cenic_internal = encoded_cenic_internal
telco = encoded_telco
cenic_imp_jira = encoded_cenic_imp_jira
order_date = encoded_order_date
deliv_date = encoded_deliv_date
cpe_date = encoded_cpe_date
ops_ready = encoded_ops_ready
mig_complete = encoded_mig_complete
disco_date = encoded_disco_date
usg_track_sw = encoded_usg_track_sw
crickusage = encoded_crickusage
Project_Value_HiLvl = encoded_Project_Value_HiLvl
cirid = encoded_cirid
bucket_name = "cenicbucket1"
file_name = "ccc_master_circuit.csv"
lambda_path = "/tmp/" + file_name
s3_path = "/csv/" + file_name
client = boto3.client('s3')
client.put_object(Body=ccckeyid prjstatus cenic_status cenic_internal telco cenic_imp_jira order_date deliv_date cpe_date ops_ready mig_complete disco_date usg_track_sw crickusage Project_Value_HiLvl cirid, Bucket='cenicbucket1', Key='csv/ccc_master_circuit.csv')
def bump_through_master(sheet):
x = 0
for row in sheet.rows:
x += 1
#************ CCC Key ID *********
ccckeyid = row.get_cell("CCC Key ID").value
if ccckeyid == "None":
continue
print("ccckeyid", ccckeyid)
prjstatus = row.get_cell("CCC Project Status").value
prjstatus = clean_fld(prjstatus)
if isBlank(prjstatus):
prjstatus = ""
print("Record [", x, "]", " prjstatus", prjstatus)
#*********** CENIC Status ************
cenic_status = row.get_cell("CENIC Status Update").value
cenic_status = clean_fld(cenic_status)
if isBlank(cenic_status):
cenic_status = ""
#*********** CENIC Internal Status ***
cenic_internal = row.get_cell("CENIC Internal Status").value
cenic_internal = clean_fld(cenic_internal)
if isBlank(cenic_internal):
cenic_internal = ""
telco = row.get_cell("Telco").value
telco = clean_fld(telco)
if isBlank(telco):
telco = ""
cenic_imp_jira = row.get_cell("CENIC Implement Jira #").value
cenic_imp_jira = clean_fld(cenic_imp_jira)
if isBlank(cenic_imp_jira):
cenic_imp_jira = ""
order_date = row.get_cell("Order Date - Text").value
order_date = clean_fld(order_date)
order_date = fix_date(order_date, ccckeyid)
if isBlank(order_date):
order_date = ""
deliv_date = row.get_cell("Delivery Date - Text").value
deliv_date = clean_fld(deliv_date)
deliv_date = fix_date(deliv_date, ccckeyid)
if isBlank(deliv_date):
deliv_date = ""
cpe_date = row.get_cell("CPE Date - Text").value
cpe_date = clean_fld(cpe_date)
cpe_date = fix_date(cpe_date, ccckeyid)
if isBlank(cpe_date):
cpe_date = ""
ops_ready = row.get_cell("Ops Ready Date - Text").value
ops_ready = clean_fld(ops_ready)
ops_ready = fix_date(ops_ready, ccckeyid)
if isBlank(ops_ready):
ops_ready = ""
mig_complete = row.get_cell("Migration Complete Date - Text").value
mig_complete = clean_fld(mig_complete)
mig_complete = fix_date(mig_complete, ccckeyid)
if isBlank(mig_complete):
mig_complete = ""
disco_date = row.get_cell("Disconnect Date - Text").value
disco_date = clean_fld(disco_date)
disco_date = fix_date(disco_date, ccckeyid)
if isBlank(disco_date):
disco_date = ""
crickusage = row.get_cell("Cricket Usage Report").value
crickusage = clean_fld(crickusage)
if isBlank(crickusage):
crickusage = ""
usg_track_sw = row.get_cell("Usage Tracking").value
usg_track_sw = clean_fld(usg_track_sw)
if isBlank(usg_track_sw):
usg_track_sw = ""
cirid = row.get_cell("CIRCUIT ID").value
cirid = clean_fld(cirid)
if isBlank(cirid):
cirid = ""
Project_Value_HiLvl = row.get_cell("Project Value HiLvl").value
Project_Value_HiLvl = clean_fld(Project_Value_HiLvl)
if isBlank(Project_Value_HiLvl):
Project_Value_HiLvl = ""
debugprints(ccckeyid, prjstatus, cenic_status, cenic_internal, telco, cenic_imp_jira, order_date, deliv_date, cpe_date, ops_ready, mig_complete, disco_date, usg_track_sw, crickusage, Project_Value_HiLvl, cirid)
create_csv(ccckeyid, prjstatus, cenic_status, cenic_internal, telco, cenic_imp_jira, order_date, deliv_date, cpe_date, ops_ready, mig_complete, disco_date, usg_track_sw, crickusage, Project_Value_HiLvl, cirid)
def main():
smartsheet,SHEET_ID = import_simple_smartsheet_env()
sheet = smartsheet.sheets.get(SHEET_ID)
bump_through_master(sheet)
一个额外的问题强>
有没有办法在我的Lambda/Python代码中删除csv/ccc_master_circuit.csv?我需要在运行函数之前执行此操作,这样我就有了一个“干净”的ccc_master_circuit.csv,其中在每次函数调用开始时都不存在以前写入的数据。在我写入新数据之前,删除CSV文件必须发生在函数的顶部
目前没有回答
相关问题 更多 >
编程相关推荐