Python写入DynamoDB脚本执行报错,请求排查问题原因
问题描述
我创建了名为dynamodb put.py的文件,写入以下Python脚本:
import boto3 if__name__ == '__main__': dynamodb = boto3.resource('dynamodb') table = dynamodb.Table('users') response = table.put_item( Item={ 'userid': 123, 'name': "Praveen Sripati", 'city': "Hyderabad", 'country': "India" } ) print("Put movie succeeded:")
执行脚本后出现如下报错:
line 1: import: command not found line 3: if__name__: command not found line 4: syntax error near unexpected token `(' line 4: ` dynamodb = boto3.resource(' dynamo d b ')'
请帮忙排查脚本中的错误。
错误排查与修复
脚本执行方式错误:
import: command not found说明你可能直接用Shell执行脚本(如./dynamodb put.py),但未指定Python解释器,也没加shebang行。
修复:要么用python3 "dynamodb put.py"执行;要么在脚本最顶部添加#!/usr/bin/env python3,再给脚本加执行权限chmod +x "dynamodb put.py"。语法错误:
if__name__缺少空格:第3行if__name__必须写成if __name__,if与__name__之间的空格是Python语法要求,缺失会被识别为无效变量名,引发错误。脚本内容存在输入错误:报错显示第4行参数为
' dynamo d b ',但原脚本是'dynamodb',说明实际文件中该字符串被错误添加了空格,导致boto3无法识别服务名称,同时触发语法错误。需检查文件内容,确保boto3.resource('dynamodb')的字符串无多余空格。可选优化:最后一行打印内容为"Put movie succeeded:",但实际操作的是
users表,建议改为"Put user succeeded:"避免混淆。
修复后的完整脚本:
#!/usr/bin/env python3 import boto3 if __name__ == '__main__': dynamodb = boto3.resource('dynamodb') table = dynamodb.Table('users') response = table.put_item( Item={ 'userid': 123, 'name': "Praveen Sripati", 'city': "Hyderabad", 'country': "India" } ) print("Put user succeeded:")
内容的提问来源于stack exchange,提问作者Marks
相关产品推荐
相关产品推荐

