2017-02-17 5 views
0

Ich habe versucht, JSON-Daten zu analysieren, aber es hat nicht funktioniert, JSON-Parser gibt ein starkes nicht ein Wörterbuch zurück !! Hier ist der Code:Python kann JSON-String nicht analysieren

import urllib2 
from BeautifulSoup import BeautifulSoup 
import json 
html = urllib2.urlopen("http://www.imdb.com//name/nm0425005/mediaviewer/rm244453632?ref_=nmmi_mi_all_sf_49").read() 
soup = BeautifulSoup(html) 
script = soup.find('script', {'id': 'imageJson'}) 
json_data = ''.join(map(str, script.contents)) 
json_data = json.dumps(json_data.strip(' \t\n\r')) 
data = json.loads(json_data) 
print data['mediaViewerModel'] 
+0

ja ich druckte die JSON-Daten vor dem JSON-Modul übergeben, aber es sieht gut aus – Tyranitar

Antwort

1
json_data = ''.join(map(str, script.contents)) 
>>> json_data = json.dumps(json_data.strip(' \t\n\r')) 
data = json.loads(json_data) 

Die markierte Linie ist das Problem. json_data ist derzeit eine Zeichenfolge, die ein Wörterbuch codiert, und wenn Sie aufrufen, handelt es sich dann um eine Zeichenfolge, die eine Zeichenfolge kodiert, die ein Wörterbuch codiert, und Ihre letzte Zeile macht nur eine Instanz rückgängig. Was versuchen Sie eigentlich mit der markierten Linie?

+0

Ich versuchte nur lädt die Funktion, aber es hat nicht funktioniert, ich habe diesen Fehler: ValueError: Expecting, Trennzeichen: Zeile 2 Spalte 515 (char 515) Ich füge Dumps hinzu Ich dachte, es wird die Syntax von JSON beheben – Tyranitar

+0

Das sagt Ihnen, dass das, was Sie analysieren wollen, kein gültiger JSON ist. Da Sie es von einer Site scrapen, erhalten Sie wahrscheinlich etwas zurück, ohne dass Sie korrekt entkommen oder etwas, was Sie von einer API erhalten würden. –

Verwandte Themen