Python 访问simplejson.load()输出中的元素

Python 访问simplejson.load()输出中的元素,python,json,simplejson,Python,Json,Simplejson,我有一个从simplejson.load()函数返回的数据字典(?)。看起来像这样 {'status': 'OK', 'results': [{'geometry': {'location_type': 'APPROXIMATE', 'bounds': {'northeast': {'lat': 53.86121, 'lng': -2.045072}, 'southwest': {'lat': 53.80570600000001, 'lng': -2.162588}}, 'viewport':

我有一个从simplejson.load()函数返回的数据字典(?)。看起来像这样

{'status': 'OK', 'results': [{'geometry': {'location_type': 'APPROXIMATE', 'bounds': {'northeast': {'lat': 53.86121, 'lng': -2.045072}, 'southwest': {'lat': 53.80570600000001, 'lng': -2.162588}}, 'viewport': {'northeast': {'lat': 53.8697753, 'lng': -2.0725853}, 'southwest': {'lat': 53.81711019999999, 'lng': -2.2006447}}, 'location': {'lat': 53.84345099999999, 'lng': -2.136615}}, 'address_components': [{'long_name': 'Trawden', 'types': ['sublocality', 'political'], 'short_name': 'Trawden'}, {'long_name': 'Colne', 'types': ['locality', 'political'], 'short_name': 'Colne'}, {'long_name': 'Lancashire', 'types': ['administrative_area_level_2', 'political'], 'short_name': 'Lancs'}, {'long_name': 'United Kingdom', 'types': ['country', 'political'], 'short_name': 'GB'}], 'formatted_address': 'Trawden, Colne, Lancashire, UK', 'types': ['sublocality', 'political']}]}
我如何获得结果->几何->位置->纬度

这个结构是一个普通的python字典吗

编辑:请有人也解释一下simplejson.dumps()函数。我觉得这些文件不是很有启发性

谢谢

按非OP编辑:以下是JSON,打印精美:

{
  "status":"OK",
  "results":[
    {
      "geometry":{
        "location":{
          "lat":53.843450999999988,
          "lng":-2.1366149999999999
        },
        "location_type":"APPROXIMATE",
        "viewport":{
          "northeast":{
            "lat":53.869775300000001,
            "lng":-2.0725853000000001
          },
          "southwest":{
            "lat":53.817110199999988,
            "lng":-2.2006446999999998
          }
        },
        "bounds":{
          "northeast":{
            "lat":53.86121,
            "lng":-2.0450719999999998
          },
          "southwest":{
            "lat":53.805706000000008,
            "lng":-2.162588
          }
        }
      },
      "address_components":[
        {
          "long_name":"Trawden",
          "short_name":"Trawden",
          "types":[
            "sublocality",
            "political"
          ]
        },
        {
          "long_name":"Colne",
          "short_name":"Colne",
          "types":[
            "locality",
            "political"
          ]
        },
        {
          "long_name":"Lancashire",
          "short_name":"Lancs",
          "types":[
            "administrative_area_level_2",
            "political"
          ]
        },
        {
          "long_name":"United Kingdom",
          "short_name":"GB",
          "types":[
            "country",
            "political"
          ]
        }
      ],
      "formatted_address":"Trawden, Colne, Lancashire, UK",
      "types":[
        "sublocality",
        "political"
      ]
    }
  ]
}

是的。如果将其存储在名为
d
的变量中,则将使用

d['results'][0]['geometry']['location']
等等。注意这里的
[0]
,因为带有键
'geometry'
的dict在一个列表中

simplejson.load()
将JSON对象映射到Python
dict
s,并将JSON列表映射到
list
s。非常直截了当;不要想得太多


simplejson.dumps()
只是与
simplejson.loads()
相反——它接受任何标准Python对象,并将其转储到作为该对象JSON表示形式的字符串中。例如:

>>> q = {}
>>> q['foo'] = 'bar'
>>> q[1] = 'baz'
>>> simplejson.dumps(q)
'{"1": "baz", "foo": "bar"}'

是的。如果将其存储在名为
d
的变量中,则将使用

d['results'][0]['geometry']['location']
等等。注意这里的
[0]
,因为带有键
'geometry'
的dict在一个列表中

simplejson.load()
将JSON对象映射到Python
dict
s,并将JSON列表映射到
list
s。非常直截了当;不要想得太多


simplejson.dumps()
只是与
simplejson.loads()
相反——它接受任何标准Python对象,并将其转储到作为该对象JSON表示形式的字符串中。例如:

>>> q = {}
>>> q['foo'] = 'bar'
>>> q[1] = 'baz'
>>> simplejson.dumps(q)
'{"1": "baz", "foo": "bar"}'

阅读编辑后的文章。:)看看你的数据里是怎么写的,
'results':[{'geometry':
…等等?看看在
'geometry'
之前是怎样既有一个
[/code>又有一个
{
的?这是因为结构的特定部分实际上是这样的:
{'a':[{'B':'C'}}
这是一个dict-inside-a-list-inside-a-dict。谢谢你的回答,很抱歉打扰你,但是有些语法让我非常困惑。例如,在谷歌的例子中,他们得到的数据是这样的…
[s['geometry']['location']代表json中的s['results']]
这是什么?!这是一个列表理解。下面是对它们的合理概述:(或官方文档:)很酷,谢谢。使用这种方法更好吗,因为它不依赖于固定的[0]位置?列表理解返回一个列表,如果您想在其中输入第一个元素,您仍然必须使用
[0]
。这取决于你希望得到什么样的数据。阅读编辑后的文章:)看看你的数据中是如何显示结果的:[{'geometry':
…等等?看看在
'geometry'
之前是如何既有
[
又有
{
的?这是因为结构的特定部分实际上是这样的:
{'A':[{'B':'C'}]}
这是一个dict-inside-A-list-inside-A-dict。谢谢你的回答,很抱歉打扰你,但是有些语法让我非常困惑。例如,在谷歌的例子中,他们得到的数据是这样的…
[s['geometry']['location']json中的s['results']]
这是什么?!这是一个列表理解。下面是对它们的合理概述:(或官方文档:)很酷,谢谢。使用这种方法更好吗,因为它不依赖于固定的[0]位置?列表理解返回一个列表,如果您想在其中输入第一个元素,您仍然必须使用
[0]
获取。这取决于您希望获取的数据。