气象大数据平台(天擎)数据读取方法(python)(地面资料下载)

该博客介绍了如何下载天擎的Python demo并利用其提供的示例代码来调用API接口。首先,需要修改sys.path.append()中的路径,然后配置接口所需的参数如服务节点、IP、用户名和密码等。代码会生成签名并打开浏览器展示请求结果。此外,还展示了如何将返回的数据写入JSON文件,通过requests库获取响应内容,再用json.dump()保存到文件,确保中文不乱码。
摘要由CSDN通过智能技术生成

一、下载地面资料

先在天擎官网中下载python3中的demo (../music-demo-python3-v2.0/music-demo-python/src/demo)

再利用天擎官网中python - rest 中的示例代码

# -*- coding: utf-8 -*-
'''
Created in 2016/03/28
@author: xjunior
'''
import sys
import time
import uuid
import webbrowser
# 看demo所在目录,添加路径
sys.path.append('../../..')
from demo.util import SignGenUtil

# 有些输出是中文字符,统一设置一下编码
# reload(sys)
# sys.setdefaultencoding('utf8')

if __name__ == '__main__':
    # 服务节点
    serviceNodeId = '******'
    # 接口服务端IP和端口
    serviceIp = '******'
    # 用户名&密码
    userId = '******'
    pwd = '******'
    # 序列化格式
    dataFormat = 'json'
    # 接口url
    baseUrl = 'http://' + serviceIp + '/music-ws/api?\
serviceNodeId=' + serviceNodeId + '\
&userId=' + userId + '\
&interfaceId=******\
&dataCode=******\
&elements=******\
&times=******\
&dataFormat='
    # 接口url一次拼接
    baseUrl = baseUrl + dataFormat
    # 生成时间戳和uuid,并拼接接口url
    timestamp = str(int(round(time.time() * 1000)))
    nonce = str(uuid.uuid1())
    baseUrl += '&timestamp=' + timestamp
    baseUrl += '&nonce=' + nonce
    # 生成sign
    signParams = {'serviceNodeId': serviceNodeId,
                  'userId': '******',
                  'interfaceId': '******',
                  'dataCode': '******',
                  'elements': '******',
                  'times': '******',
                  'dataFormat': dataFormat,
                  'timestamp': timestamp,
                  'nonce': nonce,
                  'pwd': pwd,
                  }
    signUtil = SignGenUtil.SignGenUtil()
    sign = signUtil.getSign(signParams)
    if (sign == ""):
        print("generate sign is None")
    # 拼接sign
    baseUrl+='&sign=' + sign
    # print(baseUrl)
    # 当前浏览器打开新标签
    webbrowser.open_new_tab(baseUrl)

 程序代码内需要修改的有:

1.    sys.path.append('../../..')   

在括号内写入demo文件夹所在位置

2.    程序块内的星号

具体可以在接口测试工具中,选择要素后点击生成脚本,对应每个星号进行复制修改

运行后会自动弹出运行了url链接,并显示读取结果。

二、将资料写入json文件

# 查看是否返回内容
response = requests.get(baseUrl)
# 获取url内容并解码
xml_data = response.json()   

# 写入json文件
f = open(file="F:/temp/my.json", mode='w', encoding='utf-8')
json.dump(xml_data, indent=2, fp=f, sort_keys=True, ensure_ascii=False)
f.close()

 利用json.dumps(dict)

将字典转为json字符串,indent为多行缩进空格数, sort_keys为是否按键排序,ensure_ascii=False为确保中文不会转为乱码。

评论 19
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值