我写了这个函数来返回艺术家名称为Joe的表中的数据。但是下面的代码并没有产生任何结果。它首先打印。但之后什么都没有。不确定我做错了什么。
from __future__ import print_function # Python 2/3 compatibility
import json
import boto3
from boto3.dynamodb.conditions import Key, Attr
dynamodb = boto3.resource('dynamodb')
table = dynamodb.Table('Music')
def handler(event, context):
print("Joe's music")
print(table.creation_date_time)
response = table.query(
KeyConditionExpression=Key('Artist').eq('Joe')
)
for i in response['Items']:
print(i['Artist'], ":", i['Artist'])
这是我得到的结果。
START RequestId: ...... Version: $LATEST
Joe's music
2017-07-19 03:07:54.701000+00:00
END RequestId: ...
答案 0 :(得分:2)
引用一段代码示例:
def handler(event,context):
print("Joe's music")
print(table.creation_date_time)
response = table.query(
KeyConditionExpression=Key('Artist').eq('Joe')
)
for i in response['Items']:
print(i['Artist'], ":", i['Artist'])
这正是您拥有的代码,包括缩进吗?回想一下,缩进对Python中的程序结构很重要。这意味着您的handler
只包含2个print
语句,而表查找代码则不在此范围内。有意义的是,您只能看到这两个print
语句的结果。
也许你的意思更像这样,缩进被更改为将表查找和响应处理代码与handler
代码的其余部分分组。
def handler(event,context):
print("Joe's music")
print(table.creation_date_time)
response = table.query(
KeyConditionExpression=Key('Artist').eq('Joe')
)
for i in response['Items']:
print(i['Artist'], ":", i['Artist'])
此外,您可能需要return
一个值,具体取决于您的需求。 Lambda Function Handler (Python)上的AWS文档包含更多详细信息,包括讨论return
值何时显着。