Переберите список словарей. Перейти в функцию - PullRequest
0 голосов
/ 25 апреля 2020

Отказ от ответственности. Я новичок в 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)

Ответы [ 2 ]

1 голос
/ 25 апреля 2020

У вас уже есть все логи c для обработки одной точки данных, просто разверните ее до нескольких точек данных, как показано ниже, используя al oop.

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)

Без синтактии c сахар становится

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_)
0 голосов
/ 25 апреля 2020

Если предполагается получить значения ключа в переменной:

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...