之前从QQ微博接收的数据为json数据。具体过程如下:
1. 从QQ微博接口接受数据,需要构造请求url,如下所示:
url_str = 'https://open.t.qq.com/api/statuses/home_timeline?oauth_consumer_key=%s&access_token=%s&openid=%s&clientip=%s&oauth_version=2.a&scope=all' %( QQ_CONFIG['APP_KEY'], str(access_token), open_id, "127.0.0.1" )
2. 利用urllib2.urlopen来发送请求。read()方法获取到的是json字符串,利用json.loads可以将其转换为python的字典形式,由于_obj_hook函数可以实现content_qq.data.info这样的操作。最终我们提供给ajax的数据为json对象类型。
try: resp = urllib2.urlopen(urllib2.Request( url_str ) ) body = resp.read() content_qq = json.loads( body, object_hook = _obj_hook ) content_qq = content_qq.data.info except urllib2.HTTPError, e: body = e.read() return jsonify( content_qq = content_qq ) #return render_template( 'qq_homepage.html', content_qq = (body) )
3.此时就可以对content_qq中的内容,直接执行json对象操作,如:
for (var i = 0; i <= listData.length; i++) { var result = ""; if ( listData[i] == null ) { return; }; if ( listData[i].hasOwnProperty('user') ) { var user = listData[i].user; result += from_str + "<br>"; } };