2017-02-17 138 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获得什么。 –