Python数据分析与处理(二)——处理中国地区信息
本文主要介绍如何使用Python处理中国地区的信息,包括省市区编码、邮政编码、手机号码归属地等。
社区信息数据来源
中国社区信息资源库是一个非营利性的公共数据资源组织,旨在收集、整合全国各类社区信息数据,为公众和企业提供社区信息查询、统计分析等服务。该平台提供了一些公开的数据接口,可以通过Python进行数据抓取和处理。
抓取数据
在进行数据处理之前,需要先抓取相应的数据。我们可以通过Python使用requests库实现数据的抓取,因为接口返回的是JSON格式的数据,所以我们可以使用Python自带的json库解析JSON字符串。
import requests
import json
url = 'http://www.choshu.info/restful/community/search'
headers = {
'Content-Type': 'application/json;charset=UTF-8'
}
data = {
"name": "",
"parentCode": "",
"pageIndex": 1,
"pageSize": 10
}
response = requests.post(url, headers=headers, data=json.dumps(data))
res = json.loads(response.text)
处理数据
省市区编码
社区信息数据库中包含了省市区的编码信息,可以通过对这些编码进行处理,得到对应的省市区名称。
province_code = '110000'
city_code = '110100'
county_code = '110101'
def get_code_name(code):
url = 'http://www.choshu.info/restful/area/area_code_dict'
params = {
'codeItem': code
}
response = requests.get(url, params=params)
res = json.loads(response.text)
return res.get(code, '')
get_code_name(province_code) # 北京市
get_code_name(city_code) # 北京市市辖区
get_code_name(county_code) # 北京市市辖区东城区
邮政编码
社区信息数据库中包含了邮政编码信息,可以通过对这些编码进行处理,得到对应的城市名称。
def get_post_code(city):
url = 'http://www.choshu.info/restful/area/postcode'
params = {
'keyword': city
}
response = requests.get(url, params=params)
res = json.loads(response.text)
return res.get('data', {}).get('list', [])[0].get('zipCode', '') if res.get('success', False) else ''
get_post_code('北京市') # '100000'
get_post_code('深圳市') # '518000'
手机号码归属地
社区信息数据库中不包含手机号码归属地信息,但我们可以通过第三方接口查询手机号码归属地。
def get_mobile_area(mobile):
url = f'http://mobsec-dianhua.baidu.com/dianhua_api/open/location?tel={mobile}'
response = requests.get(url)
res = json.loads(response.text)
return res.get('response', {}).get('location', '')
get_mobile_area('15111111111') # 山东 烟台市 秦皇岛路
get_mobile_area('13788888888') # 北京 北京市
示例
邮政编码查询
我们输入某个城市的名称,即可查询出该城市对应的邮政编码。
city_name = '北京市'
post_code = get_post_code(city_name)
print(f'{city_name}的邮政编码为:{post_code}')
输出为:
北京市的邮政编码为:100000
手机号码归属地查询
我们输入某个手机号码,即可查询出该手机号码的归属地。
mobile = '13811112222'
area = get_mobile_area(mobile)
print(f'{mobile}的归属地为:{area}')
输出为:
13811112222的归属地为:北京 北京市
至此,我们成功地使用Python对中国地区信息进行了处理。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python数据分析与处理(二)——处理中国地区信息 - Python技术站