测试基础 使用 python 解析接口返回的 json 数据

果汁 · 2018年03月05日 · 最后由 Alizigo 回复于 2019年11月26日 · 8193 次阅读

目标

通过调用移动之家提供的版本号接口获取当前线上环境 iOS 平台最新版本的版本号。

第一步:获取 http 请求结果

#!/usr/bin/python
# -*- coding: utf-8 -*-
# 使用 requests 库
import requests
response = requests.get('http://home.mobile.******')
versionInfo = response.text

参考资料:python 中 http 请求方法库汇总:https://www.cnblogs.com/landhu/p/5104628.html

第二步:解析 json

# 引用 json 库用于解析 json 对象
import json
# versionInfo 是接口返回的 json 格式数据
# json.loads 将已编码的 JSON 字符串解码为 Python 对象
versionInfoPython = json.loads(versionInfo)
# print versionInfoPython

# 从字典里取 data 数组
dataList = versionInfoPython.get('data')
# print dataList

# 满足条件:platformJson 有 iOS 以及 status 为发布状态, 获得满足条件时相应的 version 值
# 取前20个遍历
firstDataList = dataList[0:20]
versionList = []
for x in firstDataList:
    # print x['platformJson']
    # 将 platformJson 对象解析为 platform, 由接口返回结果知 platformPython 是一个列表(数组)
    platformPython = json.loads(x['platformJson'])
    if len(platformPython) > 1 and x['status'] == 1 :
        versionList.append(x['version'])
# print versionList
print versionList[0]   

参考资料:使用 Python 解析 JSON 详解 https://www.cnblogs.com/wangyayun/p/6699184.html?utm_source=tuicool&utm_medium=referral

完整代码

#!/usr/bin/python
# -*- coding: utf-8 -*-
# 引用 json 库用于解析 json 对象
import json
# 使用 requests 库
import requests
response = requests.get('http://home.mobile.******')
versionInfo = response.text
# versionInfo 是接口返回的 json 格式数据
# json.loads 将已编码的 JSON 字符串解码为 Python 对象
versionInfoPython = json.loads(versionInfo)
# print versionInfoPython

# 从字典里取 data 数组
dataList = versionInfoPython.get('data')
# print dataList

# 取前20个遍历
firstDataList = dataList[0:20]
versionList = []
for x in firstDataList:
    # print x['platformJson']
    # 将 platformJson 对象解析为 platform, 由接口返回结果知 platformPython 是一个列表(数组)
    platformPython = json.loads(x['platformJson'])
    # 当 platformPython 数组大于1时,一定包含 ios
    # status : 1 已发布,2 开发中,4 内灰中
    if len(platformPython) > 1 and x['status'] == 1 :
        versionList.append(x['version'])
# print versionList
print versionList[0]   
共收到 1 条回复 时间 点赞
仅楼主可见
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册