Python request API

如何使用Python3调用第三方的API?

使用urlib来做GET请求

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# coding:utf-8
import requests, json
import urllib.request
import urllib.parse
import json


def address_transform(address, city):
url = "http://api.map.baidu.com/geocoder/v2/"
data = {}
data["output"] = "json"
data["address"] = address
data["city"] = city
data["ak"] = ""
data = urllib.parse.urlencode(data).encode('utf-8')
response = urllib.request.urlopen(url, data)
result = json.loads(response.read().decode('utf-8'))
location = (result["result"]["location"])
return (str(location["lat"]) + "," + str(location["lng"]))

print(address_transform("广西大学", "广西壮族自治区-南宁市-西乡塘区"))

使用request来做GET请求

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
# coding:utf-8
import requests, json
import urllib.request
import urllib.parse
import json


def address_transform(address, city, **kwargs):
data = {}
url = "http://api.map.baidu.com/place/v2/suggestion"
district = city[city.index("-")+1 : len(city)]
data["query"] = address
print(data["query"])
data["region"] = district[0:district.index("-")] # 城市
print(data["region"])
data["city_limit"] = "true"
print(data["city_limit"])
data["output"] = "json"
print(data["output"])
district = district[district.index("-")+1:len(district)] # 区县
data["ak"] = "AK"
print("*"*100)
response = requests.get(url, params=data, **kwargs)
json = response.json()
return json


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!