Skip to main content
 首页 » 编程设计

python之在 Python 中访问嵌套的 JSON 元素

2025年05月04日15unruledboy

Python 新手,我不确定我是否正确地将我的请求编码为 JSON。我试图能够访问 JSON 中的特定元素。这是我的:

import requests 
import json 
 
url = "sample.com" 
access_token "xxxxx" 
 
headers = { 
    'authorization': access_token, 
    'cache-control': "no-cache" 
    } 
 
response = requests.request("GET", url, headers=headers) 
 
jsonvar = response.json() 
print(jsonvar) 

这给了我:

{u'sleep':  
     [{u'logId': 11208762595,  
       u'dateOfSleep': u'2016-03-23',  
       u'isMainSleep': True,  
       u'startTime': u'2016-03-22T23:43:30.000',  
       u'restlessCount': 7,  
       u'duration': 12540000,  
       u'restlessDuration': 13,  
       u'minuteData': [{u'value': u'2', u'dateTime': u'23:43:30'},  
                       {u'value': u'1', u'dateTime': u'23:44:30'}],                          
       u'awakeCount': 1,  
       u'minutesAfterWakeup': 0}],  
 u'summary':  
      {u'totalTimeInBed': 418,  
       u'totalMinutesAsleep': 395,  
       u'totalSleepRecords': 2}} 

我更改了输出以使其更具可读性。无论如何,我想将特定的元素值分配给变量,例如 isMainSleep 等。

我试过这样的:

myvar = jsonvar['isMainSleep']  

我能够让它在不同的情况下工作,但没有数据是嵌套的,这似乎是这里的区别。

请您参考如下方法:

您只需要一路访问每本词典。像这样:

myvar = jsonvar['sleep'][0]['isMainSleep'] 

您访问与键 sleep 关联的列表,然后是它的第一个元素,这是一个字典。最后与键 isMainSleep 关联的值。

请注意,您不需要在 key 前添加前缀“u”。

在回答您的评论时,您可以像这样将其输出为 json:

print json.dumps(myvar)