为了账号安全,请及时绑定邮箱和手机立即绑定

python 中的 Runtime.MarshalError

python 中的 Runtime.MarshalError

至尊宝的传说 2023-10-18 21:36:24
我收到此错误。我正在使用 python 3.7 执行 aws lambda 函数的代码来了解 Quicksight 仪表板版本。提前致谢!errorMessage:“无法封送响应:日期时间类型的对象不可 JSON 序列化”,错误类型:“运行时.MarshalError”代码-import boto3import timeimport sysclient = boto3.client('quicksight')def lambda_handler(event, context):    response = client.list_dashboard_versions(AwsAccountId='11111', DashboardId='2222',MaxResults=10)    return response
查看完整描述

3 回答

?
慕田峪7331174

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)


查看完整回答
反对 回复 2023-10-18
?
潇湘沐

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 返回,您应该转换该值。


查看完整回答
反对 回复 2023-10-18
?
慕田峪9158850

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"])


查看完整回答
反对 回复 2023-10-18
  • 3 回答
  • 0 关注
  • 163 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信