Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 反复浏览字典列表。发挥作用_Python_Parameter Passing_Keyword Argument - Fatal编程技术网

Python 反复浏览字典列表。发挥作用

Python 反复浏览字典列表。发挥作用,python,parameter-passing,keyword-argument,Python,Parameter Passing,Keyword Argument,免责声明。我是python新手,正在努力学习。我有一个包含地址信息的字典列表,我想迭代,然后作为参数传递到函数中 打印(数据) 我迭代列表并尝试传入值,但值作为列表而不是单独传递过去。我不知道如何纠正。我仍然掌握参数和关键字参数。感谢您的帮助和指导 from usps import USPSApi, Address input_name = [li['lastName'] for li in data] input_address = [li['address'] for li in dat

免责声明。我是python新手,正在努力学习。我有一个包含地址信息的字典列表,我想迭代,然后作为参数传递到函数中

打印(数据)

我迭代列表并尝试传入值,但值作为列表而不是单独传递过去。我不知道如何纠正。我仍然掌握参数和关键字参数。感谢您的帮助和指导

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

请特别重复介绍之旅。由于
数据
未定义,您发布的代码在第一个活动行失败。我们还希望您进行基本的调试:如果您在收集变量时打印变量,您将看到您专门列出了地址的每个部分。我不确定你认为
地址
应该为你做什么,但你非常清楚地将每个部分的完整列表分配到了地址的每个字段。你似乎在寻找现有教材中提供的教程帮助(部分)。堆栈溢出不是为了替换这些资源。是否控制生成该字典列表的上游进程?