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)
