You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 22:42:14