我正在请求youtube搜索词与jquery autocomplete一起使用,但我很难将URL响应转换为正确的格式.
在我的(Django/Python)视图中我做:
data2 = urllib2.urlopen('http://suggestqueries.google.com/complete/search?hl=en&ds=yt&client=youtube&hjson=t&jsonp=window.yt.www.suggest.handleResponse&q=jum&cp=3')
Run Code Online (Sandbox Code Playgroud)
(为简单起见,我硬编码了搜索词='jump')
如果我这样做,data2.read()我得到我认为是JSON(将URL复制粘贴到浏览器中也会返回此内容.)
window.yt.www.suggest.handleResponse(["jum",[["jumpstyle","","0"],["jump","","1"],["jump around","","2"],["jump on it","","3"],["jumper","","4"],["jump around house of pain","","5"],["jumper third eye blind","","6"],["jumbafund","","7"],["jump then fall taylor swift","","8"],["jumpstyle music","","9"]],"","","","","",{}])
Run Code Online (Sandbox Code Playgroud)
我需要以jquery autocomplete可以读取的格式返回它.我知道如果我可以把它放到列表中,它会起作用,例如,mylist = ['jumpstyle', 'jump', 'jump around', ...]
然后在返回之前将其转换回json:
json.dumps(mylist)
Run Code Online (Sandbox Code Playgroud)
(如果我直接mylist如上所述直接定义,这是有效的.)
但我无法从URL返回的数据中获取一个简单的列表(然后我将其转换回JSON)或某些形式的JSON,我可以直接返回以供auto complete使用.
除其他外,我试过了
j2 = json.loads(data2)
Run Code Online (Sandbox Code Playgroud)
和
j2 = json.loads(data2.read())
Run Code Online (Sandbox Code Playgroud)
希望有人可以帮忙!
Xav*_*osa 14
删除&jsonp=window.yt.www.suggest.handleResponse部分
import json
import urllib2
data = urllib2.urlopen('http://suggestqueries.google.com/complete/search?hl=en&ds=yt&client=youtube&hjson=t&q=jum&cp=3')
j = json.load(data)
k = [i for i, j, k in j[1]]
l = json.dumps(k)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
15552 次 |
| 最近记录: |