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
结果: