Python: Konvertiere JSON (zurückgegeben von URL) in List

8

Ich beantrage youtube-Suchbegriffe für die Verwendung mit jquery-Autocomplete, aber es fällt mir schwer, die URL-Antwort in ein korrektes Format zu konvertieren.

In meiner (Django / Python) Ansicht mache ich:

%Vor%

(Ich habe den Suchbegriff aus Gründen der Einfachheit mit 'springen' geschrieben)

Wenn ich data2.read() mache, bekomme ich, was ich glaube, JSON (das Kopieren der URL in einen Browser gibt auch das zurück.)

%Vor%

Ich muss das in einem Format zurückgeben, das jquery autocomplete lesen kann. Ich weiß, dass es funktioniert, wenn ich es in eine Liste bringen kann, zum Beispiel mylist = ['jumpstyle', 'jump', 'jump around', ...]

und wandle es dann zurück in json, bevor du es zurücksendest:

%Vor%

(Dies funktioniert, wenn ich mylist direkt wie oben beschrieben definiere.)

Ich kann jedoch nicht von den Daten, die von der URL zurückgegeben werden, entweder eine einfache Liste (die ich dann wieder in JSON umwandle) oder eine Form von JSON abrufen, die ich direkt zur automatischen Vervollständigung zurückgeben kann.

Ich habe unter anderem versucht,

%Vor%

und

%Vor%

Hoffe, dass jemand helfen kann!

    
dkgirl 08.01.2011, 14:04
quelle

4 Antworten

13

Entferne &jsonp=window.yt.www.suggest.handleResponse part

%Vor%     
Xavier Barbosa 08.01.2011, 14:24
quelle
3

Sie machen eine JSON-P-Anfrage, die den JSON automatisch in eine JavaScript-Callback-Funktion umschließt, die Sie in der Anfrage tatsächlich angegeben haben:)

Entfernen Sie den JSON-P-Parameter aus Ihrer Anfrage und Sie erhalten JSON direkt aus der Anfrage, ohne dass Sie extra Python-Zeug brauchen.

Dies sollte Ihre Anfrage sein:

%Vor%

und es wird zurückkehren:

%Vor%     
Jon Nylander 08.01.2011 14:22
quelle
0

Die Ausgabe von der Seite ist keine richtige json-codierte Daten. Sie müssen den js-Funktionsaufruf entfernen, der es einhüllt.

tu dies:

%Vor%

parsedData ist jetzt ein Python-Array.

    
Mihai Toader 08.01.2011 14:15
quelle
0

es ist nicht json, es ist javascript, wenn du es als json benutzen willst, musst du den javascript-teil entfernen:

%Vor%

Sie können aber einfach die URL ändern (entfernen Sie den 'jsonp = window.yt.www.suggest.handleResponse' Teil), um eine reine json Ausgabe zu erhalten:

%Vor%     
virhilo 08.01.2011 14:12
quelle

Tags und Links