提前感谢您的帮助。
我需要从WebService检索一些数据(客户端和产品)。此代码获取数据并将其转换为包含字典的列表。
consumidores = requests.get(url + 'all_consumers', headers=custom_header) # lista
con = consumidores.json()
productos = requests.get(url + 'all_products', headers=custom_header) # lista
prod = productos.json()
c = []
for key in con:
c = [key['genero'], key['complexion'], key['tallaCamisa'], key['tallaPantalon'], key['edad'], key['ubicacion'],
key['valorComercial'], key['valorCompra']]
p = []
for index in prod:
p = [index['genero'], index['precio']]
我需要做的是创建两个列表,一个用于客户,一个用于产品。为每个客户和产品选择一些特定元素,并创建一个必须看起来像这样的新列表
new_list = [[costumer_1, costumer_element1, costumer_element2 , ... , product_1, product_element1, product_element2, ...], [costumer_1, costumer_element1, ..., product_1, product_element1, ...], [costumer_2, costumer_elementn, ... product_1, product_element1 ,...] , ...]
然后应用一个将客户与产品联系起来的函数,并将结果附加到产生该输出的列表中:
results = [[costumer_1, costumer_element1, costumer_element2 , ... , product_1, product_element1, product_element2, RESULT], etc]
for key in con:
index=0
param_relcp = c[index][key['genero'],key['edad']]
index=index + 1
返回错误:IndexError:列出索引超出范围并使用此
c = []
for key in con:
c = [key['genero'], key['complexion'], key['tallaCamisa'], key['tallaPantalon'], key['edad'], key['ubicacion'],
key['valorComercial'], key['valorCompra'], key['id']]
仅从列表列表的第一个元素中获取元素。任何帮助将不胜感激。
答案 0 :(得分:0)
你的循环似乎什么都不做,例如。
for key in con:
c = [key['genero'], key['complexion'], key['tallaCamisa'], key['tallaPantalon'], key['edad'], key['ubicacion'],
key['valorComercial'], key['valorCompra']]
每次都替换c
,并且只获得上一次循环中的最后一个值。您对p
执行相同操作,对param_relcp
执行相同操作。
或者:
c = []
for key in con:
c.append([key['genero'], key['complexion'], key['tallaCamisa'], key['tallaPantalon'], key['edad'], key['ubicacion'],
key['valorComercial'], key['valorCompra']])
或
c = [[key['genero'], key['complexion'], key['tallaCamisa'], key['tallaPantalon'], key['edad'], key['ubicacion'],
key['valorComercial'], key['valorCompra'] for key in con]
和其他人一样。