使用python3.7解析json对象时出错,无法访问键值

时间:2019-04-25 15:53:45

标签: python json python-3.x

我有一个python lambda函数,可以接收发布的数据。该函数看起来像这样:

import json
import ....


def handle(event, context):

    if event["body"]:
        posted_data = json.loads(event["body"])
        print(posted_data)
        print(posted_data["email"])
        print(posted_data.get("email"))

print(posted_data)行这样打印我的json对象:

{
    "tel": "078723646",
    "message": "jsd fljxdisfbv lskdjnildufv nlksjfg",
    "email": "my@selg.om"
}

print(posted_data["email"])行给了我这个错误:
[ERROR] TypeError: string indices must be integers

print(posted_data.get("email")行出现此错误:
[ERROR] AttributeError: 'str' object has no attribute 'get'

但是,当我打开控制台时,运行python并执行以下操作:

>>> obj = {"tel": "078276353", "message": "uisdjy df jdslfj lsdjf fb", "email": "tetet@gdgdg.lo"}
>>> type(obj)

我得到的答复是: <class 'dict'> 因此,对于它是字典还是字符串,我有些困惑。

我需要做的是访问对象中的每个值。
 我尝试了this,但效果是颠倒了json.loads
我也看了here,但这没有帮助。我检查了this,但似乎与我的情况无关。

在来自@brunns的建议之后,我在print(type(posted_data))后面插入了posted_data = json.loads(event["body"]),发现post_data实际上是一个字符串。

我期望json.loads(event["body"])将json对象转换为python对象。如何获取对象中的值?

0 个答案:

没有答案