在Python中访问嵌套的JSON元素
Python新手,我不确定我是否正确地将我的请求编码为JSON。我试图访问JSON中的特定元素。这就是我所拥有的:在Python中访问嵌套的JSON元素,python,json,python-requests,Python,Json,Python Requests,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", u
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']
print json.dumps(myvar)
我可以在不同的情况下使用它,但没有一个数据嵌套,这似乎是这里的区别。这里有一个嵌套列表和字典,顶级键是
sleep
和summary
。因此,试试myvar=jsonvar['sleep'][0]['ismainleep']您只需访问沿途的每一本词典即可。像这样:
myvar = jsonvar['sleep'][0]['isMainSleep']
访问与键sleep
关联的列表,然后访问其第一个元素,即字典。最后,与键关联的值是mainseep
请注意,您不需要在密钥前添加前缀“u”
在回答您的评论时,您可以将其输出为json,如下所示:
myvar = jsonvar['isMainSleep']
print json.dumps(myvar)
jsonvar['sleep']['ismainseep']
ismainseep
位于嵌套在另一个字典中的列表中的字典中。您需要jsonvar[u'sleep'][0][u'ismainseep']
。注意前面的u
,因为它们是unicode字符串,而[0]
是列表中的第一项。您可能需要添加一些错误检查。@solarc您的建议有效!然而,因为这只是一个评论,我不能接受它作为答案。有没有更好的方法输出这些数据,使其实际为JSON格式?