【发布时间】:2015-02-25 08:17:55
【问题描述】:
我有一个如下的 JSON 文件输出
{
u'_embedded': {
u'workouts': [
{
u'start_datetime': u'2015-02-16T08:47:00+00:00',
u'name': u'Walk',
u'updated_datetime': u'2015-02-16T19:20:36+00:00',
u'created_datetime': u'2015-02-16T19:20:36+00:00',
u'notes': u'',
u'reference_key': None,
u'start_locale_timezone': u'Europe/London',
u'source': None,
u'_links': {
u'user': [
{
u'href': u'/v7.1/user/******/',
u'id': u'******'
}
],
u'self': [
{
u'href': u'/v7.1/workout/*******/',
u'id': u'*******'
}
],
u'privacy': [
{
u'href': u'/v7.1/privacy_option/1/',
u'id': u'1'
}
],
u'route': [
{
u'href': u'/v7.1/route/*******/',
u'id': u'*******'
}
],
u'activity_type': [
{
u'href': u'/v7.1/activity_type/9/',
u'id': u'9'
}
]
},
u'has_time_series': False,
u'is_verified': False,
u'aggregates': {
u'active_time_total': 1020.0,
u'elapsed_time_total': 1020.0,
u'distance_total': 1729.99651968,
u'speed_avg': 1.6972231232,
u'steps_total': 0.0
}
}
]
},
u'_links': {
u'self': [
{
u'href': u'/v7.1/workout/?limit=20&user=******&offset=0'
}
],
u'documentation': [
{
u'href': u'https://developer.underarmour.com/docs/v71_Workout'
}
]
},
u'total_count': 1
}
从这段代码中,我希望自己提取锻炼 id,它位于
u'user': [
{
u'href': u'/v7.1/user/******/',
u'id': u'******'
}
我在另一段代码中使用 json.loads 对其进行了管理,尽管在下面的代码中,我不确定如何实现它,因此我可以使用 json.loads 而不是 x.json()正在使用,所以我迷路了。我试图通过使用索引来使用 json.loads 来执行此操作,但它只会引发错误。以下是代码的 sn-p 以及我尝试过的内容
route = requests.get(url='https://oauth2-api.mapmyapi.com/v7.1/workout/?user=********', verify=False,
headers={'api-key': CLIENT_ID, 'authorization': 'Bearer %s' % access_token['access_token']})
route = route.json()
for info in route['workouts']['self']:
print info['id']
#print route
非常感谢任何有关如何从 JSON 中提取数据的帮助,或者如何编辑我的代码以允许我使用 json.loads 代替。
谢谢。
【问题讨论】:
-
这不是 JSON,而是 Python 字典。
-
使用
json.loads时遇到什么错误? -
TypeError: 预期的字符串或缓冲区