使用来自URL

时间:2015-08-17 09:25:02

标签: python json parsing

所以我试图从URl获取json并且请求有效并且我得到json但是我无法从中打印特定的东西。

    request_url = 'http://api.tumblr.com/v2/user/following?limit=1'
    r = requests.get(request_url, auth=oauth).json()


    r["updated"]

我是python的新手我猜我需要将json放入数组但我不知道从哪里开始。

根据tumblr api,我应该可以得到这样的东西。

    {
      "meta": {
        "status": 200,
        "msg": "OK"
      },
      "response": {
        "total_blogs": 4965,
        "blogs": [
          {
            "name": "xxxxx",
            "title": "xxxxxx",
            "description": "",
            "url": "http://xxxxxx.tumblr.com/",
            "updated": 1439795949
          }
        ]
      }
    }

我只需要名称,网址,并且更新后根本不知道如何将其分开。

3 个答案:

答案 0 :(得分:0)

您应该能够打印值,就好像它是嵌套数组一样:

r["response"]["blogs"][0]["updated"]应该为您提供最新信息,不要直接进行。干得好。请注意博客是一个数组,因此在正常情况下,您可能真的希望使用r["response"]["blogs"],然后遍历它,并为每个项目抓住["updated"]

同样,r["meta"]["msg"]会为您提供元消息。

答案 1 :(得分:0)

只需逐个访问关卡。

for i in r["response"]["blogs"]:
    print i["name"],i["url"],i["updated"]

因此,此代码可用于打印blogs列表

中的所有对象

解释这是如何工作的:

在Python中,Json对象被解码为名为dictionaries的东西。字典是简单的键值对。在您的示例中,

r是一个包含以下键的字典:

meta, response

您可以使用r [" meta"]来访问密钥的值。

现在元本身就是一本字典。相关的键是:

status,msg

因此,r["meta"]["status"]给出了请求返回的状态值。

答案 2 :(得分:0)

JSON数据转换为dict,根据您的代码设置为r

要访问与updated键关联的值,您需要先访问它之前的值。

您应首先访问包含api实际响应的r["response"]。从该级别开始,您应该接下来访问r["response"]["blogs"],然后循环查看updated密钥的值。

如果是单个博客,您可以执行r["response"]["blogs"][0]["updated"]

之类的操作