我正在编写一个程序,该程序可以获取市政厅位置/查询搜索的数据框,并在另一列中返回它们的地址。问题是街道地址和邮政编码没有显示,只有城市名称、州代码和国家/地区。当我在必应地图上搜索查询时(例如:City Hall Agoura Hills, City of Agoura Hills, Los Angeles, CA)我能够看到地址。任何帮助表示赞赏。
import requests
import pandas as pd
def get_address(row):
api_key = "SAMPLE_API_KEY"
base_url = f"https://dev.virtualearth.net/REST/v1/Locations"
place_name = row['Place Name']
query = f"{place_name}, USA"
params = {
'query': query,
'key': api_key,
'includeNeighborhood': 1
}
response = requests.get(base_url, params=params).json()
if response['resourceSets'][0]['estimatedTotal'] == 0:
return 'No address found'
else:
address = response['resourceSets'][0]['resources'][0]['address']
street_number_name = address.get('AddressLine', 'N/A')
city = address.get('locality', 'N/A')
state = address.get('adminDistrict', 'N/A')
postal_code = address.get('PostalCode', 'N/A')
country = address.get('countryRegion', 'N/A')
return f"{street_number_name}, {city}, {state} {postal_code}, {country}"
#Example DataFrame
df = pd.DataFrame({
'Place Name': ['City Hall Avondale, City of Avondale, Maricopa, AZ', 'City Hall Agoura Hills, City of Agoura Hills, Los Angeles, CA', 'City Hall Ontario, City of Ontario, San Bernardino, CA']
})
df['Address'] = df.apply(get_address, axis=1)
print(df.to_string())
输出:
Place Name Address
0 City Hall Avondale, City of Avondale, Maricopa, AZ N/A, Avondale, AZ N/A, United States
1 City Hall Agoura Hills, City of Agoura Hills, Los Angeles, CA N/A, Agoura Hills, CA N/A, United States
2 City Hall Ontario, City of Ontario, San Bernardino, CA N/A, San Bernardino, CA N/A, United States
您是否尝试过使用更具体的详细信息(例如街道地址或邮政编码)可以更准确地定位?例如:
query = f"{place_name}, {street_address}, {city}, USA"