-
Notifications
You must be signed in to change notification settings - Fork 0
/
geoLocate.py
44 lines (35 loc) · 1.47 KB
/
geoLocate.py
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
import csv
import geopy
def openCSV(fileName):
with open('addresses.csv', 'r') as infile:
with open(fileName + '.csv', 'w') as outfile:
reader = csv.DictReader(infile)
fnames = reader.fieldnames + ['latitude', 'longitude', 'county']
print('headers are: ' + fnames)
write = csv.DictWriter(outfile, fieldnames = fnames)
write.writeheader()
print('wrote header')
for row in reader:
address = row['address']
city = row['city']
state = row['state']
zipcode = row['zip']
fullAddress = address + ' ' + city + ' ' + state + ' ' + zipcode
from geopy.geocoders import Bing
geocoder = Bing(api_key = '')
loc = geocoder.geocode(fullAddress)
county = loc.raw['address']['adminDistrict2']
lat = loc.latitude
lng = loc.longitude
write.writerow({'address' : address,
'city' : city,
'state' : state,
'zip' : zipcode,
'latitude' : lat,
'longitude' : lng,
'county' : county
})
fileName = raw_input("Enter new filename: ")
open(fileName + '.csv', 'w')
openCSV(fileName)
print('finished, check file')