代码之家  ›  专栏  ›  技术社区  ›  JavaJo

在json可序列化Python对象中传递整数值

  •  0
  • JavaJo  · 技术社区  · 1 年前

    我是Python的新手,一直在努力解决这个问题。 有一个用Python编写的AWS lambda函数调用REST点,如下所示:

    requests.post(Url,headers=Headers,data=Payload)

    上面调用中的有效负载是这样传递的:

    Payload='[{"Code": "'+someCode+'","version": "v1","itemNumber": 1,"referenceId": "'+referenceId+'","alertBody": {"customerId": "'+customerId+'"},"Context":{"Id":"'+str(payload['body']['State']['Id'])+'","Name":"Payment","Expiration":0,"Action":"","sourceTimestamp":"'+ str(int(currentTime.timestamp()))+'","sourceApp":"someApp"}}]'

    然而,由于我们发布此Payload的API端的架构最近发生了更改,它已停止工作。API现在期望 “sourceTimestamp”:“'+str(int(currentTime.timestamp()))+'” 要作为Integer而不是String发送的字段(当前它是作为String发送的,如上面的有效负载所示)

    有人能指导我如何修复它并将时间戳作为整数而不是字符串发送吗?我想坚持上面的有效载荷格式。

    1 回复  |  直到 1 年前
        1
  •  1
  •   pabludo8    1 年前

    Json整数必须在不使用双引号的情况下给出。所以简单地去掉两边的双引号 str(int(currentTime.timestamp())) 对你的案子有效