当前位置: 首页 > 知识库问答 >
问题:

使用python访问嵌套对象

姬心思
2023-03-14

我从foursquare收到了一个json形式的响应。我尝试访问对象的某些部分,但没有成功。如何访问对象的地址?这是我试过的代码。

url = 'https://api.foursquare.com/v2/venues/explore'

params = dict(client_id=foursquare_client_id,
              client_secret=foursquare_client_secret,
              v='20170801', ll=''+lat+','+long+'',
    query=mealType, limit=100)

resp = requests.get(url=url, params=params)

data = json.loads(resp.text)
msg = '{} {}'.format("Restaurant Address: ", 
data['response']['groups'][0]['items'][0]['venue']['location']['address'])
print(msg)

以下是json响应的一个示例:

"items": [
      {
        "reasons": {
          "count": 0,
          "items": [
            {
              "summary": "This spot is popular",
              "type": "general",
              "reasonName": "globalInteractionReason"
            }
          ]
        },
        "venue": {
          "id": "412d2800f964a520df0c1fe3",
          "name": "Central Park",
          "contact": {
            "phone": "2123106600",
            "formattedPhone": "(212) 310-6600",
            "twitter": "centralparknyc",
            "instagram": "centralparknyc",
            "facebook": "37965424481",
            "facebookUsername": "centralparknyc",
            "facebookName": "Central Park"
          },
          "location": {
            "address": "59th St to 110th St",
            "crossStreet": "5th Ave to Central Park West",
            "lat": 40.78408342593807,
            "lng": -73.96485328674316,
            "labeledLatLngs": [
              {
                "label": "display",
                "lat": 40.78408342593807,
                "lng": -73.96485328674316
              }
            ],

完整的回应可以在这里找到

共有3个答案

邢小云
2023-03-14

data[“items”][2][“location”][“address”]

这将为您访问该地址。

拓拔耀
2023-03-14

您的代码(至少在加载和访问对象方面)在我看来是正确的。我从一个文件中加载了json(因为我没有您的foursquare id),它工作得很好。您正确地使用了对象/字典键和数组位置来导航到所需的内容。但是,您在向下钻取数据的行中错贴了“地址”。添加缺少的“a”使其工作。我还在纠正你发布的URL中的错误。

我回答这个问题时假设您链接到的示例JSON是存储在数据中的内容。如果不是这样的话,一个相对简单的方法是导入pprint,并像这样使用:pprint,以查看python在data中存储了什么。pprint(数据)

您还可以通过使用-i开关运行程序并亲自检查变量来启动交互式python shell。

司空祯
2023-03-14

像这样

addrs=data['items'][2]['location']['address']
 类似资料:
  • 问题内容: 不固定f1.png值时如何访问inval值。即文件名可以是任何东西,它不知道,所以我如何使用Java访问此JSON中各种文件的inval字段值? 问题答案: 请尝试以下代码, 希望它能解决您的问题

  • 我有以下HTML代码的网页: 我试过这个。WebDriverWait(驱动程序,10).Unilt(ec.frame_to_available_and_switch_to_it((by.css_selector,“iframe.iframetgr”)))WebDriverWait(驱动程序,10).Unilt(ec.frame_to_available_and_switch_to_it((by.n

  • 问题内容: 我正在尝试使用zippopotam.us获取特定城市的邮政编码。我有下面的代码可以正常工作,但是当我尝试访问返回的密钥时 完整的JSON输出: 谢谢你的帮助。 问题答案: 我没有意识到第一个嵌套元素实际上是一个数组。正确访问邮政编码密钥的方法如下:

  • 问题内容: 我正在尝试使用angular.js,hammer.js和topcoat制作和移动webapp。 我在显示像这样的Json文件中的数据时遇到了一些麻烦: 我的js文件是这样的: 我的HTML文件是这样的: 我想显示所有专辑,并且如果我的用户选择特定的艺术家,我想过滤那些专辑。 这里的问题是如何在此嵌套json上进行选择。顺便说一句,artist.name显示正确。 第二个问题是,如何过滤

  • 问题内容: 为什么以下SQL语句不起作用? 它产生此错误: 查询输入必须至少包含一个表或查询。 单个语句有效。 问题答案: Access SQL语句不会让您对以下其中一项使用子查询 按照Piotr的建议,切换到语句即可。 或者,您可以在语句中使用Access Domain Aggregate函数而不是子查询:

  • 本文向大家介绍如何使用JavaScript map()方法访问嵌套对象?,包括了如何使用JavaScript map()方法访问嵌套对象?的使用技巧和注意事项,需要的朋友参考一下 假设以下是我们的嵌套对象- 使用用typeof一起访问嵌套对象。以下是代码- 示例 要运行上述程序,您需要使用以下命令- 在这里,我的文件名为demo119.js。 输出结果 这将产生以下输出-