首页 > 解决方案 > 如何在查询 dynamodb 时使用 sys.argv

问题描述

我有一些程序如下

import boto3
from boto3.dynamodb.conditions import Key, Attr
import sys

dynamodb = boto3.resource('dynamodb')
table = dynamodb.Table('g_data')
#var1 = sys.argv[1]
data = table.scan(
       FilterExpression=Attr('customer_id').eq(1)) 

print(data['Items'][0]['customer_id'])
print(data['Items'][0]['tools_type']['antivirus'])

它在下面一行硬编码客户 ID 时有效

FilterExpression=Attr('customer_id').eq(1)) 

但是如果我这样提到,我想通过运行时 sys.argv 传递这个客户 ID

FilterExpression=Attr('customer_id').eq(var1))

我收到如下错误:

Traceback (most recent call last):
  File "C:\csv\abdynmodb\abdynamodb1.py", line 15, in <module>
    print(data['Items'][0]['tools_type']['antivirus'])
IndexError: list index out of range

标签: pythonamazon-web-servicesamazon-dynamodbboto3

解决方案


推荐阅读