这是当前的输出: 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 :(得分:0)
要在HTML中创建新行,您需要使用display:block styled elements or the <br/>
tag。每个主要浏览器都会为每个<p>
元素添加display:block属性,因此这可能是最简单的事情。
这样的事情:
<p>501 10th ave, 100018, ...</p>
<p>1 times square, 100036, ...</p>