使用JSON负载的Python-字符串索引必须是整数
您好,我在反序列化lambda中的json时遇到了一些问题,从在线查看来看,问题似乎是我有一个字符串,并试图像获取dict一样获取键值,但仍然不确定正确的解决方案 下面是给出错误的代码使用JSON负载的Python-字符串索引必须是整数,python,json,lambda,Python,Json,Lambda,您好,我在反序列化lambda中的json时遇到了一些问题,从在线查看来看,问题似乎是我有一个字符串,并试图像获取dict一样获取键值,但仍然不确定正确的解决方案 下面是给出错误的代码 def handler(event, context): try: json_str = json.dumps(event) request_json = json.loads(json_str) req = request_json['body']
def handler(event, context):
try:
json_str = json.dumps(event)
request_json = json.loads(json_str)
req = request_json['body']
logger.info("req : " + str(req))
if req:
key = req['executionArn']
这一行给出了问题-
key = req['executionArn']
记录器线路给了我这个
req : {"executionArn":"123"}
我通过api网关在lambda上执行post请求,将其用作有效负载
{"executionArn":"123"}
您有一个
事件
变量,通过转储将其转换为字符串
,然后通过加载
将其转换回JSON,然后尝试访问该JSON的属性。对吗
除了双重转换之外,request_json['body']
是一个字符串,如果您知道它是json,您可以像以前一样加载它:
req=json.loads(request_json['body'])
非常有效,谢谢!因此,我实际上可以保留转储并在开始时加载,因为它已经是json了?如果您知道它已经是json(实际上是一个字典),那么是的,您可以访问event['body']
,但我不知道您进入event
的内容,所以我不能确定。