2022年 11月 7日

Python 调用接口

Python 调用接口

一、Python调用接口根据邮编查地址或者根据地址查邮编

1、根据邮编查地址

import json
import requests
import urllib.parse
 
data = {}
data["appkey"] = "接口的key"
data["zipcode"] = "100000" #邮编
 
url_values = urllib.parse.urlencode(data) 

answer = '' #存放接口返回值
try:
    url = "https://api.jisuapi.com/zipcode/query" + "?" + url_values #接口地址
    response = requests.get(url) #调用接口
    answer = response.json() #利用json 得到返回值
except:
    answer = ''

 
if answer["status"] != u"0":
    print(ur.Request)
result = answer["result"]
val = result[0]
for val in result:
    print(val["province"],val["city"],val["town"],val["address"],val["zipcode"]) #输出想要的信息值 省份 城市 乡镇 地址 邮编
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25

结果:
在这里插入图片描述

2、根据地址查邮编

import json
import requests
import urllib.parse

data = {}
data["appkey"] = "key"
data["adress"] = "杭州师范大学"
data["areaid"] = 382
 
 
url_values = urllib.parse.urlencode(data)

answer = ''
try:
    url = "https://api.jisuapi.com/zipcode/addr2code" + "?" + url_values
    response = requests.get(url)
    answer = response.json()
except:
    answer = ''

 
if answer["status"] != u"0":
    print(ur.Request)
result = answer["result"]
val = result[0]
 
for val in result:
    print (val["province"],val["city"],val["town"],val["address"],val["zipcode"])
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28

结果:

!!!urlencode() (为引用,原文点击连接)

  • 传入参数类型:字典
  • 功能:将存入的字典参数编码为URL查询字符串,即转换成以key1=value1&key2=value2的形式
  • 导入:from urllib.parse import urlencode(直接用 urlencode函数) 或者 import urllib.parse (用法:urllib.parse.urlencode
  • Ps:url单个字符串编码用quote()函数
例子1:url标准符号,数字字母
import urllib.parse as up
base_url = '123'
params1 = {"value": "english", "page": 1}
url1 = base_url + urllib.parse.urlencode(params1)
print(urllib.parse.urlencode(params1))  # value=english&page=1
print(url1)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

结果:

在这里插入图片描述

例子2:汉字,/,&,=,URL编码转化为%xx的形式
import urllib.parse as up
base_url = '123'
params2 = {
    'name': "王二",
    'extra': "/",
    'special': '&',
    'equal': '='}
url2 = base_url + up.urlencode(params2)
print(up.urlencode(params2))
print(url2)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

结果:

 123