Sto richiedendo i termini di ricerca di youtube per l'utilizzo con il completamento automatico di jquery, ma sto avendo difficoltà a convertire la risposta dell'URL in un formato corretto.Python: Converti JSON (restituito dall'URL) nell'elenco
Nel mio (Django/Python) Vista che faccio:
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')
(ho hardcoded il termine di ricerca = 'salto' per semplicità)
Se faccio data2.read()
ottengo quello che credo sia JSON (copia-incollare l'URL in un browser restituisce anche questo.)
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"]],"","","","","",{}])
ho bisogno di tornare questo in un formato che jQuery completamento automatico in grado di leggere. So che funzionerà se posso farlo in un elenco, ad esempio, mylist = ['jumpstyle', 'jump', 'jump around', ...]
e poi riconvertirlo in JSON prima di tornare:
json.dumps(mylist)
(questo funziona se io direttamente definisco mylist
direttamente come scritto sopra.)
Ma non riesco a ottenere dai dati che vengono restituiti dall'URL a una semplice lista (che poi riconvertirò in JSON) oa qualche forma di JSON che posso tornare direttamente per essere usata da auto completo.
Ho provato, tra le altre cose,
j2 = json.loads(data2)
e
j2 = json.loads(data2.read())
La speranza qualcuno può aiutare!
Questo funziona benissimo. Grazie! – dkgirl
+1 bella risposta completa –