免责声明。我是python的新手,正尝试学习。我有一个字典列表,其中包含要迭代的地址信息,然后将其作为参数传递给函数。
print(data)
[{'firstName': 'John', 'lastName': 'Smith', 'address': '123 Lane', 'country': 'United States', 'state': 'TX', 'city': 'Springfield', 'zip': '12345'}, {'firstName': 'Mary', 'lastName': 'Smith', 'address': '321 Lanet', 'country': 'United States', 'state': 'Washington', 'city': 'Springfield', 'zip': '54321'}]
我遍历列表,尝试传递值,但是这些值作为列表而不是单独作为列表过去。我不确定如何纠正。我仍在掌握参数和关键字参数。任何帮助和指导表示赞赏。
from usps import USPSApi, Address
input_name = [li['lastName'] for li in data]
input_address = [li['address'] for li in data]
input_city = [li['city'] for li in data]
input_state = [li['state'] for li in data]
input_zip = [li['zip'] for li in data]
input_country = [li['country'] for li in data]
address = Address(
name = input_name,
address_1= input_address,
city= input_city,
state=input_state,
zipcode=input_zip
)
usps = USPSApi('------', test=True)
validation = usps.validate_address(address)
data_results = validation.result
print(data_results)
您已经具有处理单个数据点的所有逻辑,只需使用循环将其扩展为多个数据点,如下所示。
from usps import USPSApi, Address
for item in data:
kwargs = dict()
kwargs['name'] = item['lastName']
kwargs['address_1'] = item['address']
kwargs['city'] = item['city']
kwargs['state'] = item['state']
kwargs['zipcode'] = item['zip']
address = Address(**kwargs)
usps = USPSApi('------', test=True)
validation = usps.validate_address(address)
data_results = validation.result
print(data_results)
没有语法糖就变成
for item in data:
kwargs = dict()
name = item['lastName']
address_ = item['address']
city = item['city']
state = item['state']
zip_ = item['zip']
address = Address(
name=name,
address_1=address_,
city=city,
state=state,
zipcode=zip_)
如果要在变量中获取键的值:
d_data = [{'firstName': 'John', 'lastName': 'Smith', 'address': '123 Lane', 'country': 'United States', 'state': 'TX', 'city': 'Springfield', 'zip': '12345'}, {'firstName': 'Mary', 'lastName': 'Smith', 'address': '321 Lanet', 'country': 'United States', 'state': 'Washington', 'city': 'Springfield', 'zip': '54321'}]
input_name = d_data[0]['lastName']
input_address = d_data[0]['address']
input_city = d_data[0]['city']
input_state = d_data[0]['state']
input_zip = d_data[0]['zip']
input_country = d_data[0]['country']
print(input_name)
print(input_address)
print(input_city)
print(input_zip)
print(input_country)
输出:
John
Smith
123 Lane
Springfield
12345
United States