一、下载地面资料

先在天擎官网中下载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为确保中文不会转为乱码。

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐