python json接口数据提取_Python接口验证及取数

一、环境

1.

操作系统:win10教育版

2.

Python:3.4

二、

正文

1.

代码部分

#!/usr/bin/env python

# -*- coding: utf-8 -*-

import json

import urllib3

from urllib.parse import

urlencode

#1、认证部分,获取Token

authUrl =

"https://www.test.com/api/Authenticate"

http = urllib3.PoolManager()

data = {"organisation":

"XXXXXX","username": "XXXXXXX","password": "XXXXXXXX"}

#认证信息

encode_data =

json.dumps(data).encode()

req =

http.request('POST',authUrl,body=encode_data,headers={'Content-Type':'application/json'})

#请求

#2、如果认证成功,则开始取数

if req.status == 200: #如果请求成功

token = json.loads(req.data.decode())["data"]["token"]

#获取Tocken

# print(token)

#请求数据

args = {"IsUser":"True","Status":"1","Sex":"Man"}

#传递参数

encode_args = urlencode(args) #编码参数

# print(encode_args)

getDataUrl = "https://www.test.com/api/Patrol/Histories?" +

encode_args

# print(getDataUrl)

dataReq = http.request('GET',getDataUrl,headers={'X-Token':token})

#请求,注入Token

# print(dataReq.status)

result = json.loads(dataReq.data.decode())["data"];

#将返回json数据转换为python列表

# print(result[0])

#打印结果

for row in result:

print(row["shopNo"] )

2.

说明

#!/usr/bin/env python

# -*- coding: utf-8

-*-

#上面开头两句,务必加上,可治许多杂病

#1、认证部分,获取Token

http = urllib3.PoolManager() #创建连接池

data = {"organisation": "XXXXXX","username":

"XXXXXXX","password": "XXXXXXXX"} #认证信息,通常为账号密码之类

encode_data = json.dumps(data).encode()

#将python字典类型进行json格式编码解析,并以utf-8编码(encode默认值参考:https://docs.python.org/3/library/stdtypes.html?highlight=encode#string-methods)

req =

http.request('POST',authUrl,body=encode_data,headers={'Content-Type':'application/json'})

#发起http的POST请求, 通过定义body

参数来发送一个已经过编译的JSON数据,

{'Content-Type':'application/json'}用来告诉服务端消息主体是序列化后的JSON 字符串

#2、认证成功,则开始请求数据

if req.status == 200: #如果请求成功,返回状态200

token = json.loads(req.data.decode()) ["token"]

#将json格式数据转换为python字典类型,并获取键值,从而取得token。

encode_args = urlencode(args) #将字典类型的键值对编码为url参数

dataReq = http.request('GET',getDataUrl,headers={'X-Token':token})

#发起http请求,在头部放入token

result = json.loads(dataReq.data.decode())["data"];

#将返回json格式数据转换为python字典类型,并取得data键值(实际上是列表)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值