2017-02-20 20 views
1

我正在从csv读取地址以对它们进行地理编码。目前我的Python脚本检查,如果地址中包含这个数字(我只希望进行地址解析以数字开头的地址,如“81街无处街道,纽约”):检查是否需要以Python中的数字开头的地址解析项目

if hasNumbers(item) == True: 

然而,这意味着“纽约81 St Nowhere街81号”形式的地址将起作用,“纽约码头6号傻船”也将起作用。

我只想要以第一个位置上的数字开头的地址进行地理编码(即忽略Pier 6类型的地址,并且只有以数字开头的地理编码地址)。

最简单的方法是什么?

回答

1

测试第一个字符是否是数字。

def is_number(s): 
    try: 
     float(s) 
     return True 
    except ValueError: 
     return False 

for item in items: 
    if is_number(item[0]): 
    #Do stuff 

在Python3你可以使用:

for item in items: 
    if item[0].isnumeric(): 
    #Do stuff 
+0

那太好了,谢谢! –

-1

你需要使用正则表达式,然后

import re 
pattern = r"^\d.*" 
if re.match(patten, word): 
    print "Match Found" 

模式:

^ - 在字符串

\d开始断言位置 - 一个数字相匹配(等于[0-9])

.* - 匹配任何字符期望“\ n”任意次数。