';str';对象没有属性';获取';-python

';str';对象没有属性';获取';-python,python,json,Python,Json,我试图从json响应中获取元素,但是我得到了一个错误 “str”对象没有属性“get” 我的代码中可能有什么错误请帮助 dataform = json.loads(job.body) data = json.dumps(dataform) logger.debug(data) logger.debug(data.get('number').strip()) 我的答复如下 {"shop_id": "23823addsf33sdfd

我试图从json响应中获取元素,但是我得到了一个错误

“str”对象没有属性“get”

我的代码中可能有什么错误请帮助

        dataform = json.loads(job.body)
        data = json.dumps(dataform)

        logger.debug(data)
        logger.debug(data.get('number').strip())
我的答复如下

{"shop_id": "23823addsf33sdfdlladioiddf", "user_id": "1", "number": "440239023011"}

json.dumps
将字典转换为字符串。在应用它之后,您会得到如下结果

data = "\{\"shop_id\": \"23823addsf33sdfdlladioiddf\" ..."

所以,它不再是字典了,它是一个看起来像字典的字符串。这就是为什么你会出错。您可能应该对前一行应用
get

json.dumps
将字典转换为字符串。在应用它之后,您会得到如下结果

data = "\{\"shop_id\": \"23823addsf33sdfdlladioiddf\" ..."

所以,它不再是字典了,它是一个看起来像字典的字符串。这就是为什么你会出错。您可能应该将
get
应用于前一行。

因为您在
json.dumps()之后获得
str


dataform.get('number')
将起作用

因为您在
json.dumps()之后获得
str


dataform.get('number')
将起作用

data=json.dumps(dataform)
创建一个字符串。
data=json.dumps(dataform)
创建一个字符串。如何从数据而不是数据表单中获取元素?我想访问jsonelement@MichaelAnaman:不可能知道,取决于对象的结构。可以通过直接将get应用于
作业.body
,但只是猜测“这是一个看起来像字典的字符串。”=>实际上,确切地说,它是一个表示dict的JSON版本的字符串。如何从数据而不是数据表单中获取元素?我想访问jsonelement@MichaelAnaman:不可能知道,取决于对象的结构。可以直接将get应用于
作业.body
,但只需猜测“这是一个看起来像字典的字符串。”=>实际上,确切地说,它是一个表示dict的JSON版本的字符串。