2010-12-16 256 views

Répondre

0

J'ai trouvé les réponses. Parce que api de stackoverflow retourne "application/json" content-type, donc mon script python ne peut pas le lire en texte brut. En fait, "application/json" est un fichier, et j'utilise des méthodes pour obtenir le codage du fichier, c'est gzip. Donc, je peux utiliser le module "gzip" de python pour le lire maintenant. Ouais!

Voici mon exemple de script d'appeler api de "http://api.stackoverflow.com/1.0/stats":

#!/usr/bin/env python 
#-*- coding:utf-8 -*- 
import urllib 
import simplejson as json 
import gzip 
import cStringIO 
def run(): 
    url = 'http://api.stackoverflow.com/1.0/stats' 
    c = urllib.urlopen(url).read() 
    s = cStringIO.StringIO(c) 
    gzfile = gzip.GzipFile(fileobj=s, mode='rb') 
    content = gzfile.read() 
    data = json.loads(content) 
    print type(data) 
    print data 
run()