Django json嵌套列表.get()

时间:2018-05-03 14:30:42

标签: django django-views

我遇到了一个愚蠢的问题。

我有一个json数据并尝试将其保存在我的模型中。

这是代码。

response = response.json() #this gives json data
response = json.loads(response) #loads string to json           
json_string = response #ready to get data from list
modelfielda = json_string.get("abc") # this works fine
modelfieldb = json_string.get('["c"]["d"]["e"]') #this does not give data though data is present.

我的json数据是这样的:

{  
   "abc":"AP003",
   "c":[  
      {  
         "d":{  
            "e":"some data",
            "f":"some data"
         }
      }
   ]
}

所以我的问题是如何在c内获取数据。

2 个答案:

答案 0 :(得分:2)

请尝试Bag=
或使用列表:
e

答案 1 :(得分:1)

使用多个.get s

bnm = json_string.get('c')[0].get('d').get('e')  # bnm = 'some data'

或者更好(因为如果密钥不存在会出错):

bnm = json_string['c'][0]['d']['e']  # bnm = 'some data'

由于您将其转换为Python字典,因此您基本上使用字典,并且可以使用some_dict[some_key]获取与键对应的值。由于我们这里有一系列字典,因此我们获得了我们再次获得相应值的子字典。与c对应的值是一个列表,我们可以通过编写[0]来获取第一个元素。