Python-JSON字符串。错误:AttributeError:'str'对象没有属性'get'

时间:2019-05-12 10:52:05

标签: python json

我是python的新手。

我正在形成一个json字符串,以接收来自各种REST调用的输入。

类似的东西:

{
   "-gammaid#10191-":{
      "domain":"Kids Interest",
      "product":"Project1"
   },
   "-gammaid#10382-":{
      "domain":"Weekend Classes",
      "product":"Project2"
   },
   "-gammaid#10442-":{
      "domain":"Knowledge Driven",
      "product":"Project3"
   },
   "-gammaid#10620-":{
      "domain":"Primary Education",
      "product":"Project4"
   },
   "-gammaid#10986-":{
      "domain":"Other Domain",
      "product":"Project5"
   },
   "-gammaid#10987-":{
      "domain":"Kids Interest",
      "product":"Project6"
   },
   "-gammaid#10996-":{
      "domain":"External Classes",
      "product":"Project7"
   },
   "-gammaid#11663-":{
      "domain":"Parent Interaction",
      "product":"Project8"
   }
}

如您所见,每个键 gammaid 都有一个json结构化值。

运行my_json.get("-gammaid#11663-")时,我会得到

AttributeError: 'str' object has no attribute 'get'

2 个答案:

答案 0 :(得分:2)

您需要先将其解析为字典:

import json

s = 'YOUR JSON STRING'

d = json.loads(s)
print(d["-gammaid#11663-"])

答案 1 :(得分:0)

如果您这样定义它:

s={
   "-gammaid#10191-":{
      "domain":"Kids Interest",
      "product":"Project1"
   },
   "-gammaid#10382-":{
      "domain":"Weekend Classes",
      "product":"Project2"
   }

这是python字典。 这样您就可以访问这样的值:

s["-gammaid#11663-"]
{'domain': 'Parent Interaction', 'product': 'Project8'}

如果您实际上需要获取json对象,可以这样做:

import json
json.loads(json.dumps(s))