2016-07-03 15 views
0

這裏的電流輸出,每個列表元素: http://puu.sh/pOsKt/4e4ab1f316.png回到新線(瓶)

我想它想輸出1地址+每線的GPS座標。我認爲我的代碼中的最後一行會完成,但它不工作,因爲你可以看到。

我的代碼:

from flask import Flask, request 
from geopy.geocoders import Bing 
from geopy.exc import GeocoderTimedOut 
import re 

patterns = [" st", "street", "ave", "avenue", "plz", "ctr", "park", "pl", " plaza ", "way", "grn", "sq", "ln", "dr", 
      "ct", "oval", "vlg", "blvd", "boulevard", " ter", "pkwy", "rd", "row", "hwy", "americas", "broadway"] 
geolocator = Bing(
    '...') 

app = Flask(__name__) 


@app.route("/") 
def index(): 
    return """<form action="/clean" method="POST"><textarea rows="4" cols="50" 
      name="addresses">Enter addresses here...</textarea> 
      <p><input type="submit"></p> </form>""" 


@app.route("/clean", methods=['POST']) 
def dothing(): 
    addresses = request.form['addresses'] 
    return cleanAddress(addresses) 


def cleanAddress(addresses): 
    addresses = addresses.split('\n') 
    cleaned = [] 

    for address in addresses: 

     address = address.lower() 
     address = re.sub('[^A-Za-z0-9]+', ' ', address).lstrip() 
     address = re.sub(re.compile(r'^[^0-9]*'), '', address).lstrip() 
     if 'plz' in address: 
      address = address.replace('plz', 'plaza ', 1) 
     if 'hstreet' in address: 
      address = address.replace('hstreet', 'h street') 
     if 'dstreet' in address: 
      address = address.replace('dstreet', 'd street') 
     if 'hst' in address: 
      address = address.replace('hst', 'h st') 
     if 'dst' in address: 
      address = address.replace('dst', 'd st') 
     if 'have' in address: 
      address = address.replace('have', 'h ave') 
     if 'dave' in address: 
      address = address.replace('dave', 'd ave') 
     if 'havenue' in address: 
      address = address.replace('havenue', 'h avenue') 
     if 'davenue' in address: 
      address = address.replace('davenue', 'd avenue') 
     regex = r'(.*)(' + '|'.join(patterns) + r')(.*)' 
     address = re.sub(regex, r'\1\2', address).lstrip() + " nyc" 

     try: 
      clean = geolocator.geocode(address) 
      x = clean.address 
      address, city, zipcode, country = x.split(",") 
      address = address.lower() 
      if 'first' in address: 
       address = address.replace('first', '1st') 
      elif 'second' in address: 
       address = address.replace('second', '2nd') 
      elif 'third' in address: 
       address = address.replace('third', '3rd') 
      elif 'fourth' in address: 
       address = address.replace('fourth', '4th') 
      elif 'fifth' in address: 
       address = address.replace('fifth', '5th') 
      elif ' sixth a' in address: 
       address = address.replace('ave', '') 
       address = address.replace('avenue', '') 
       address = address.replace(' sixth', ' avenue of the americas') 
      elif ' 6th a' in address: 
       address = address.replace('ave', '') 
       address = address.replace('avenue', '') 
       address = address.replace(' 6th', ' avenue of the americas') 
      elif 'seventh' in address: 
       address = address.replace('seventh', '7th') 
      elif 'fashion' in address: 
       address = address.replace('fashion', '7th') 
      elif 'eighth' in address: 
       address = address.replace('eighth', '8th') 
      elif 'ninth' in address: 
       address = address.replace('ninth', '9th') 
      elif 'tenth' in address: 
       address = address.replace('tenth', '10th') 
      elif 'eleventh' in address: 
       address = address.replace('eleventh', '11th') 
      zipcode = zipcode[3:] 
      cleaned.append((str(address) + ", " + str(zipcode.lstrip()) + 
          ", " + str(clean.latitude) + ", " + str(clean.longitude))) 
     except (AttributeError, ValueError, GeocoderTimedOut): 
      print('Can not be cleaned') 

    return "\n".join(cleaned) 


if __name__ == "__main__": 
    app.run(debug=True) 
+0

如果按Ctrl + U,你得到你想要什麼? – Brian

+0

啊,查看頁面源代碼。是。謝謝! – Harrison

回答