2017-09-14 8 views
0

私は自分の生徒のタイムテーブル/スケジュール用に独自のAPIを作成しようとしています。すでにPHP(GitHub)で書かれたAPIがありますが、私はPythonを使いたいと思います。Base64とgzipでエンコードされたPythonでAPIからデータを読み取る

今、元のAPIから取得したデータを読み込もうとしています。これは、応答である:それはこのようにデコードされたPHPファイルで

{ 
    "d": 
    "H4sIAAAAAAAEAO1XzW6bQBC+V+o7IM5Z82PMj29RqkiRkiiKo/ZQVdUuOxgUzFpmaVpFeZs+Rm95sS5egwEDwY7bQ9o9GGtm5+8bdj728f07RVFvIc1i7jMK6lTRTyqyGcc8Sy+SgAmNqkqVEK74RULhuxAio7r/CpLsgsMiFZrPuVxRHuVDbClMZAQp8llyGSX3W+9r8V3E4zwXYRLimENFdRZGMa24r4WohTFO6uJKqJDzZTrVNLxcjmhKhIavWDyioKWi4MjXcEJXLKKR0KTaXRRDOlomc7XusczyNEvD55/JHBobbhnjQl9LL8+E1svdiD9gDq2KMs6uCXAcxe1GeJ62Ks5YcvdjCbU+bFQ3q4i1yXcb19MMuR6bgrJuYk5cV7dMZLoBRZbleMizTA854BN94ltkEljNpGv4GNZI90ambjiKMZ5OjNbNJWbXpqV8As5hpdzCPGIJjtu9d0LZC2cDUrNN3QGrxKQDWum3E958tUAsXb4KZgnGHlBLePaEW0YpIS/Oo4/9EMzGkTzPj59mbBZq+SmWNqRo7QEwD2E1CvmiO7e+fsvelD23u7b09F02qqf3MkbZ/y/dMeBbBA95qp5nG/okIEi0a4ws3yOieNtHAXXG2DbAcYk/DKGldLoeeW1xn3aFbQlWk9vx0/DRtO+0faqP2C6I1CvgIaPXeLF+LXn+DjWm8zU8nLEs4TsdUGf4G1zidM1+uTlfZbDdUM2gnXka7l7DPAtxRkgMfexzEwvu+U895eqmngDA0l1qIpdQcUJsMkbuBBso8Meu7YFBiUMHU481Ne1+6vl4o8z88PlXLIbhgpHo3yCeQ0GWYOwBtISnADvNSMq/6rqRz/U9KGf3IFLMsTZomA4pVRuW2Fvlm0EQvUW+2QzuY3FO8XcbtRGxckVqDdIToChx96a2vUK9eFObCb7i0bzKsnvc1Y7GmOcAlGD/vo8wiz3qQa0N2q2HdzbAcbrX58TRLrKnhGW8D5n1Rf8gVHDu+u9BYh4Lkks2fwETueMwVOI228Nh+aNDIH9Ix6I6nCQQ177V1CuBG064JHlMLOJZgFEwcQNkYcdAroXHyPB8B9u6bTtjT4zRp98HcP/bYBIAAA==" 
} 

// parse json 
$response = json_decode($response)->d; 

// decode Base64 
$response = base64_decode($response); 

// decode gzip 
$response = gzdecode($response); 

私は、Pythonと同じことをしよう:

# Read JSON 
data = r.json()["d"] 

# Decode Base64 
data_base64 = base64.b64decode(data) 

# Decode GZIP 
data_uncompressed = zlib.decompress(data_base64) 

# Decode JSON 
data_json = json.loads(data_uncompressed) 

残念ながら、私はエラーを取得します復号時GZIP:

data_uncompressed = zlib.decompress(data_base64) 
zlib.error: Error -3 while decompressing data: incorrect header check 

誰もが知っている、何が原因でエラー?ご協力いただきありがとうございます。

答えて

2

間違った圧縮解除。完全なgzipデータにはgzip.decompress()を使用します。

+0

ありがとうございました!できます! –

関連する問題