Stackexchange API编码

2024-10-02 00:27:11 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在为Stackexchange API编写以下decorator:

    class StackOverflowHandler(tornado.web.RequestHandler):

            def get(self, look_up_pattern):
                url = "https://api.stackexchange.com/2.2/search?order=desc&sort=votes&intitle=%s&site=stackoverflow"
                with urllib.request.urlopen(url % look_up_pattern) as so_response:
                response = so_response.read()
            print(response)
            self.write(response)

    application = tornado.web.Application([
        (r"/search/(.*)", StackOverflowHandler),
    ])

response我得到字节流:

^{pr2}$

问题是谁对响应进行编码?什么是正确的Unicode解码?我查过utf-8,utf-16,zlib.减压等等。。这没用。在


Tags: selfapiweburlsearchsoresponsedecorator
1条回答
网友
1楼 · 发布于 2024-10-02 00:27:11

丹尼尔·罗斯曼(Daniel Roseman)的相关回答如下:

if response.info().get('Content-Encoding') == 'gzip':
    buf = StringIO( response.read())
    f = gzip.GzipFile(fileobj=buf)
    data = f.read()

换句话说,编码应该是response.info().get('Content-Encoding')

相关问题 更多 >

    热门问题