- 积分
- 4251
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2012-12-12
- 最后登录
- 1970-1-1
|
登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
本帖最后由 zhangqqqf 于 2018-4-3 14:22 编辑
基于python3.6的CIMISS数据统一服务接口客户端开发
说明:
1. MUSIC系统内基于python的客户端调用方法的说明文档已经过时, 如果你使用的是python3.x请参考本文档进行开发;
Python:
3.x 下载地址:https://www.python.org/downloads/
IDE:
Pycharm 下载地址: https://www.jetbrains.com/pycharm/download/#section=windows
开发工具的使用方法请自行google,练习使用;
创建新工程:
pycharm创建新项目工程: 例如 D:\JetBrains\Projects\python\mimo(mimo为项目名,请自行命名,路径自由选择)
Virtual Environment:
本过程可省略, 但是为了避免不同依赖库版本的混乱,我这里建议为不同的开发项目建立单独的虚拟环境virtualEnv, 如果你熟悉命令行操作,可以使用Pycharm集成的virtualEnv创建,我这里基于Python 3.6.2 建立的virtualenv 放在指定目录内, 例如 D:\JetBrains\virtualEnv\mimoEnv, 创建完虚拟环境注意pip版本的升级.
说明: 本文档内下面所有使用的python命令均为本虚拟环境下的简写, 例如python -V, 实际执行的为D:\JetBrains\virtualEnv\mimoEnv\Scripts\python -V
执行命令检查版本(python3.x pip 9.x):
python -V
Python 3.6.2
pip -V
pip 9.0.1 from d:\jetbrains\virtualenv\mimoenv\lib\site-packages (python 3.6)
pip list
pip (9.0.1)
setuptools (18.1)
wheel (0.30.0)
zeroc-ice:
官方地址: https://zeroc.com/downloads/ice#python
安装zeroc-ice依赖包: 执行命令 D:\JetBrains\virtualEnv\mimoEnv\Scripts\pip install zeroc-ice
(说明: 该网站很慢, 如果可以梯子请翻墙)
pip list 检查,如果存在zeroc-ice(3.7.0.1) 则安装成功;
基础客户端包
MUSIC网站上下载的music-lib-python-v1.6.0.zip并不可用, 请使用我提供的附件cma.zip, 并解压缩放到项目工程目录中
例如: D:\JetBrains\Projects\python\mimo\cma
DEMO程序:
例如: D:\JetBrains\Projects\python\mimo\client.py
- # Created on 2017/08/25
- #
- # @author: zhangxin
- import datetime
- from cma.cimiss.DataQueryClient import DataQuery
- if __name__ == '__main__':
-
- # 定义client对象,指定数据服务ip和port
- # client = DataQuery(serverIp="10.96.89.55", serverPort=1888)
- # 定义client对象,默认使用client.config指定服务连接配置,需根据自己的地址进行修改
- client = DataQuery()
- # 用户名和密码
- userName = "BEHB_xxxx"
- password = "xxxxx"
- # 接口ID
- interfaceId = "getSurfEleInRegionByTime"
- # 当前时间减一天
- now_time = (datetime.datetime.now() - datetime.timedelta(hours=8)).strftime('%Y%m%d%H') + "0000"
- print('now_time:', now_time)
- # 接口参数
- params = {'dataCode': "SURF_CHN_MUL_HOR_N",
- 'elements': "Station_ID_C,PRE_12h",
- 'times': now_time,
- 'adminCodes': "230100",
- 'orderby': "Station_ID_C:ASC",
- 'limitCnt': "100000"}
- retArray2D = ""
- # 调用接口
- # 1.获取数据返回结构体/类
- # retArray2D = client.callAPI_to_array2D(userName, password, interfaceId, params)
- # 2.获取数据返回序列化字符串
- # dataFormat 序列化的数据格式,可取:xml、json、csv、text、spaceText、commaText、tabText等。
- # 其中,spaceText、commaText、tabText表示保存为文本,记录间换行,要素值间分别用空格、逗号和TAB分割;text同spaceText。
- # retArray2D = client.callAPI_to_serializedStr(userName, password, interfaceId, params, dataFormat="csv")
- # 3.获取数据写入本地文件
- # dataFormat 序列化的数据格式,可取:xml、json、csv、text、spaceText、commaText、tabText等。
- # 其中,spaceText、commaText、tabText表示保存为文本,记录间换行,要素值间分别用空格、逗号和TAB分割;text同spaceText。
- # savePath 保持的本地文件路径(全路径,含文件名)
- # 保存文件的路径及文件名
- _saveDir_ = '.\data'
- # 一种字符串拼接方法
- _saveFile_ = '%s.txt' % now_time
- # 又一种字符串拼接方法
- _savePath_ = _saveDir_ + _saveFile_
- print('savePath:', _savePath_)
- result = client.callAPI_to_saveAsFile(userName, password, interfaceId, params, dataFormat='csv', savePath=_savePath_)
- # 输出结果预览
- print(retArray2D)
- # 销毁client对象
- client.destroy()
复制代码
DEMO程序执行:
python clinet.py
`
Ice Checked!
now_time: 20180130120000
savePath: .\data\20180130120000.txt
Ice Destory!
`
我把附件补充了上了, 有需要的朋友下载吧; 如果没有积分可以私信我, 直接发你;
如果有任何问题欢迎私信或邮件, 一起交流学习;
|
-
-
mimo.zip
1.24 MB, 下载次数: 453, 下载积分: 金钱 -5
demo
-
-
cma.zip
7.74 KB, 下载次数: 438, 下载积分: 金钱 -5
ice-lib
评分
-
查看全部评分
|