3 回答
TA贡献1828条经验 获得超13个赞
我的快速修复可能是:
import boto3
import time
import sys
import json
client = boto3.client('quicksight')
def lambda_handler(event, context):
response = client.list_dashboard_versions(AwsAccountId='11111', DashboardId='2222',MaxResults=10)
return json.dumps(response, default=str)
TA贡献1816条经验 获得超6个赞
返回看起来像这样 -
{
'DashboardVersionSummaryList': [
{
'Arn': 'string',
'CreatedTime': datetime(2015, 1, 1),
'VersionNumber': 123,
'Status': 'CREATION_IN_PROGRESS'|'CREATION_SUCCESSFUL'|'CREATION_FAILED'|'UPDATE_IN_PROGRESS'|'UPDATE_SUCCESSFUL'|'UPDATE_FAILED',
'SourceEntityArn': 'string',
'Description': 'string'
},
],
'NextToken': 'string',
'Status': 123,
'RequestId': 'string'
}
如您所见,CreatedTime返回为日期时间。如果您想将其作为 JSON 返回,您应该转换该值。
TA贡献1794条经验 获得超7个赞
今天我正在努力解决这个问题,使用一种也返回日期时间的方法。
在我的示例中,'JoinedTimestamp': datetime(2015, 1, 1)导致相同的Unable to marshal response。
如果您不需要CreatedTime值,您也可以将其从响应中删除,如下所示:
for account in list_accounts_response["Accounts"]:
if "JoinedTimestamp" in account:
del account["JoinedTimestamp"]
为了跟进 Joseph Lane 的答案,转换这个值可能是这样的:
for account in list_accounts_response["Accounts"]:
if "JoinedTimestamp" in account:
account["JoinedTimestamp"] = str(account["JoinedTimestamp"])
添加回答
举报