2017-02-17 137 views
0

我試圖解析JSON數據,但它沒有工作,JSON解析器返回一個強大的不是字典! 這裏的代碼:蟒蛇無法解析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時,它將是編碼字典的字符串編碼字典,並且您的最後一行只是撤銷一個實例。你究竟在用標記線做什麼?

+0

我試過只加載加載函數,但它沒有工作,我得到這個錯誤:ValueError:期望,分隔符:第2行列515(char 515) 我添加轉儲我認爲它會修復json的語法 – Tyranitar

+0

這是告訴你,你試圖解析的是不是有效的JSON。既然你是從網站上刮來的,你可能會得到一些東西沒有適當的逃避或什麼,你會從API獲得什麼。 –