访问我认为是JSON对象

时间:2015-03-03 13:15:11

标签: python json

我正在使用python库来检索一些实时数据。当我输出结果时,存储在一个名为“nearest”的变量中,我得到了这个:

{'distance': 0.032766888603455446,
 'station': {'id': 219,
             'installDate': 1279545900000L,
             'installed': True,
             'lat': 51.49016361,
             'locked': False,
             'long': -0.19039362,
             'name': u"Bramham Gardens, Earl's Court",
             'nbBikes': 7,
             'nbDocks': 29,
             'nbEmptyDocks': 21,
             'removalDate': None,
             'temporary': False,
             'terminalName': u'001183'}}

如何访问longlat中存储的信息?

我试过了

json.decode(nearest)  
json.parse(nearest)

和其他各种方法但无济于事。 我收到这个错误:

TypeError: 'JSONDecoder' object is not callable

我的目标是检索'lat'long'和'name'的值,并将它们存储在我的代码中其他地方使用的变量中。

1 个答案:

答案 0 :(得分:0)

您需要使用适当的密钥访问字典中的项目(JSON对象):

data = {'distance': 0.032766888603455446,
        'station': {'id': 219,
                    'installDate': 1279545900000L,
                    'installed': True,
                    'lat': 51.49016361,
                    'locked': False,
                    'long': -0.19039362,
                    'name': u"Bramham Gardens, Earl's Court",
                    'nbBikes': 7,
                    'nbDocks': 29,
                    'nbEmptyDocks': 21,
                    'removalDate': None,
                    'temporary': False,
                    'terminalName': u'001183'}}

latitude = data['station']['lat']
longitude = data['station']['long']

>>> print '({}, {})'.format(latitude, longitude)
(51.49016361, -0.19039362)

我在这里假设您已经成功地将JSON字符串解析为具有json.loads()或类似的Python字典(或者可能是API将字典返回给您?)。就目前而言,由于使用单引号,您发布的JSON不是有效的JSON - 它应该是双引号,而name的值具有Python unicode前缀。