2017-02-17 14 views
0

jsonのデータを解析しようとしましたが、動作しませんでした。 ここでは、コード:pythonがjsonの文字列を解析できません

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

はい私はjsonモジュールに渡す前にjsonデータを印刷しましたが、それは正常に見えます – Tyranitar

答えて

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

マークされた行が問題です。 json_dataは現在辞書をエンコードしている文字列で、json.dumpsを呼び出すと、辞書をエンコードする文字列をエンコードする文字列になり、最後の行では1つのインスタンスが元に戻されます。あなたは実際にマークされた線で何をしようとしていますか?

+0

私は関数を読み込むための読み込みのみを試みましたが、うまくいかなかったため、このエラーが出ました:ValueError:Delimiter:Line 2 column 515(char 515) ダンプを追加してjsonの構文を修正すると考えました – Tyranitar

+0

これは、解析しようとしているものが有効なJSONではないことを示しています。あなたはサイトからそれを削り取っているので、適切なエスケープや何か、APIから得られるものとは何の関係もないものが戻ってくるでしょう。 –

関連する問題