Gzip压缩的数据的处理

阅读次数 63

调用和风天气api发现返回的是使用Gzip压缩的数据 image.png 无法正常显示返回的内容 我希望能添加对Gzip压缩的数据进行读取

2 Answers

抱歉,AirScript暂不支持gzip压缩数据的处理,建议您通过PY脚本编辑器实现,可在[表格]-[效率]-[PY脚本编辑器]中进入,如下为实例代码:

import requests
import gzip
import io

# 替换成你在和风天气官网申请的API密钥
API_KEY = '你的API密钥'
# 城市名称或城市ID
CITY = '北京'
# 和风天气API的URL
URL = 'https://devapi.heweather.net/v7/weather/now'

# 请求参数
params = {
    'location': CITY,
    'key': API_KEY,
}

def get_weather(url, params):
    # 发送请求
    response = requests.get(url, params=params, headers={'Accept-Encoding': 'gzip'})
    # 检查响应头确定是否为gzip编码
    if response.headers.get('Content-Encoding') == 'gzip':
        # 使用gzip解压缩
        buff = io.BytesIO(response.content)
        with gzip.GzipFile(fileobj=buff) as gz:
            # 读取解压缩后的数据
            data = gz.read()
            # 将字节数据解码成字符串
            text_data = data.decode('utf-8')
            return text_data
    else:
        # 如果不是gzip,直接返回文本
        return response.text

if __name__ == "__main__":
    weather_data = get_weather(URL, params)
    print(weather_data)