你可以通过编程方式查询中国的城市地域名信息。以下是几种实现方式,包括使用 Python 调用公开 API 或本地数据文件进行查询:
如果你不想依赖外部 API,可以准备一个包含中国城市和地域信息的本地数据文件(如 cities.json 或 cities.csv),然后用 Python 读取并查询。
cities.json(示例):[
{"province": "北京市", "city": "北京市"},
{"province": "上海市", "city": "上海市"},
{"province": "广东省", "city": "广州市"},
{"province": "广东省", "city": "深圳市"},
{"province": "江苏省", "city": "南京市"},
{"province": "江苏省", "city": "苏州市"}
]import json
# 加载城市数据
with open('cities.json', 'r', encoding='utf-8') as f:
cities_data = json.load(f)
def query_city(province=None, city=None):
results = []
for item in cities_data:
if (province is None or item['province'] == province) and \
(city is None or item['city'] == city):
results.append(item)
return results
# 示例查询
print("查询广东省的所有城市:")
print(query_city(province="广东省"))
print("查询广州市:")
print(query_city(city="广州市"))这些平台提供城市、行政区划查询的 API 接口,需要注册获取 API Key。
高德提供行政区划查询 API,可以查询省市区三级数据。
Python 示例代码(需要 requests 库):
import requests
# 替换为你的 API Key
API_KEY = '你的高德API_KEY'
URL = 'https://restapi.amap.com/v3/config/district'
def get_cities(province_name=None):
params = {
'key': API_KEY,
'keywords': province_name if province_name else '',
'subdistrict': 2, # 返回下两级(市、区)
'extensions': 'base'
}
response = requests.get(URL, params=params)
data = response.json()
if data['status'] == '1':
return data['districts'][0]['districts'] # 返回该省下的城市列表
else:
return []
# 示例:查询广东省下的城市
guangdong_cities = get_cities('广东省')
for city in guangdong_cities:
print(city['name'])注意:使用 API 需遵守其调用频率限制,部分 API 可能有商用限制。
你可以从开源项目如 Administrative-divisions-of-China 下载最新的中国省市区数据(JSON/CSV 格式),然后用代码加载查询。
示例下载地址:
下载后,用 Python 加载 JSON 或 CSV 文件进行查询,类似于方法一。
没有搜到相关的文章