Python AWS Lambda请求Payload中sourceTimestamp转整数的方法求助
解决方案
方法一:用字典构造Payload再转JSON(推荐)
这是最可靠的方式,能精准控制数据类型,还能避免字符串拼接带来的潜在格式bug:
- 导入
json模块(AWS Lambda默认环境已自带该模块) - 用Python字典定义Payload的完整结构,将
sourceTimestamp设为整数类型 - 把字典转为标准JSON字符串后,再传给
requests.post
示例代码:
import requests import json def lambda_handler(event, context): Url = "你的API接口地址" Headers = { "Content-Type": "application/json", # 必须添加该请求头,确保API能识别JSON格式 # 其他需要保留的请求头字段... } # 假设timestamp是你要传入的整数时间戳,可从event或其他逻辑中获取 timestamp = 1718000000 # 构造字典,sourceTimestamp直接使用整数 payload_dict = { "sourceTimestamp": timestamp, "otherField": "原有字段值", # 保留所有原有字段结构 # 其他需要的字段... } # 转换为JSON字符串,此时sourceTimestamp会以整数形式存在 Payload = json.dumps(payload_dict) # 发送请求 response = requests.post(Url, headers=Headers, data=Payload) # 后续响应处理逻辑...
方法二:修改字符串拼接逻辑(仅适用于简单场景)
如果必须保留字符串拼接的方式,直接去掉sourceTimestamp字段的引号即可,但要确保传入的时间戳能转为整数:
示例代码:
import requests def lambda_handler(event, context): Url = "你的API接口地址" Headers = { "Content-Type": "application/json", # 其他需要保留的请求头字段... } # 假设原逻辑中获取的是字符串格式的时间戳,先转为整数 timestamp_str = "1718000000" timestamp_int = int(timestamp_str) # 拼接字符串时,不给sourceTimestamp加引号 Payload = f'{{"sourceTimestamp": {timestamp_int}, "otherField": "原有字段值"}}' response = requests.post(Url, headers=Headers, data=Payload) # 后续响应处理逻辑...
注意:方法二仅适合结构简单的Payload,若字段包含特殊字符(如双引号、换行符),字符串拼接会导致JSON格式错误,优先推荐方法一。
内容的提问来源于stack exchange,提问作者JavaJo
相关产品推荐
相关产品推荐

