如何在调用堆栈api而不是'application / json'时获取json数据的纯文本?

时间:2010-12-16 05:35:54

标签: json api stack

如何在json数据的纯文本中获取堆栈api的响应,而不是响应application / json,因为respnose的第一种方式可以直接由progamme处理

1 个答案:

答案 0 :(得分:0)

我找到了答案。因为stackoverflow的api返回“application / json”内容类型,所以 我的python脚本无法将其作为纯文本读取。实际上,“application / json”是一个文件,我使用方法获取文件编码,即gzip。所以,我现在可以使用python的“gzip”模块来阅读它。呀!

以下是调用“http://api.stackoverflow.com/1.0/stats”api的示例脚本:

#!/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()