如何在python 3.x中检索和显示Vimeo视频的JSON数据?

Mat*_*den 1 python json vimeo

我想在python 3.2中检索和使用基本的Vimeo数据,给定一个视频的URL.我是JSON(和python)的新手,但它看起来非常适合这样做.

  1. 请求Vimeo视频数据(通过API格式的.json URL)
  2. 将返回的JSON数据转换为python dict
  3. 显示字典键和数据("id","标题","描述"等)

另一个SO页面通过url获取json数据并在python中使用在python 2.x中做了类似的事情,但是语法更改(比如集成urllib2)让我尝试了这个.

>>> import urllib
>>> import json
>>> req = urllib.request.urlopen("http://vimeo.com/api/v2/video/31161781.json")
>>> opener = urllib.request.build_opener()
>>> f = opener.open(req)
Traceback (most recent call last):
  File "<pyshell#28>", line 1, in <module>
    f = opener.open(req)
  File "C:\Python32\lib\urllib\request.py", line 358, in open
    protocol = req.type
AttributeError: 'HTTPResponse' object has no attribute 'type'
Run Code Online (Sandbox Code Playgroud)

此代码将集成到现有项目中,因此我与使用python相关联.我对HTTP查询有足够的了解来猜测该响应对象中的数据,但对于python不足以理解为什么open失败以及如何正确引用它.我该opener.open(req)怎么办呢?

Ble*_*der 8

这对我有用:

import urllib.request, json

response = urllib.request.urlopen('http://vimeo.com/api/v2/video/31161781.json')
content = response.read()
data = json.loads(content.decode('utf8'))
Run Code Online (Sandbox Code Playgroud)

或者使用请求:

import requests

data = requests.get('http://vimeo.com/api/v2/video/31161781.json').json()
Run Code Online (Sandbox Code Playgroud)