如何使用usaddress仅提取单个数据元素?

时间:2019-09-04 02:48:37

标签: python dictionary

我正在尝试从usaddress访问一个数据元素。例如,PlaceName是地址的城市字段。 usaddress返回有序字典。我只是想从有序字典中提取一个值。

import usaddress

temp = usaddress.parse("ZENIA, CA 95595")

print(temp)

try:

    print(temp.get['PlaceName'])

except AttributeError:

    print("ERROR")

结果:

[('ZENIA,', 'PlaceName'), ('CA', 'StateName'), ('95595', 'ZipCode')]

ERROR

我只想要ZENIA

3 个答案:

答案 0 :(得分:0)

如果您以列表形式获取数据。我认为您可以创建一个简单的函数来提取信息,如下所示:

import re
data = [('ZENIA,', 'PlaceName'), ('CA', 'StateName'), ('95595', 'ZipCode')]

def get_place_name(data):
    flag = False
    for info in data:
        if 'PlaceName' in info:
            return re.sub(r"[^a-zA-Z0-9]+", '', info[0])
    return flag

结果:

res = get_place_name(data)
# 'ZENIA'

答案 1 :(得分:0)

在python 3中

import usaddress

addr = "ZENIA, CA 95595"
parsed_addr = usaddress.tag(addr)

print(parsed_addr)

try:
    place_name = parsed_addr[0]['PlaceName']
    print(place_name)
except AttributeError as e:
    print(e)

答案 2 :(得分:0)

尝试一下:

import usaddress

temp = dict(usaddress.tag('ZENIA, CA 95595')[0])
print(temp['PlaceName'])

您的输出将是:

ZENIA

要打印所有内容,请尝试:

print(temp)

输出为:

{'PlaceName': 'ZENIA', 'StateName': 'CA', 'ZipCode': '95595'}