2016-07-26 5 views
0

Vielen Dank im Voraus für die Hilfe.Wie erstelle ich eine neue Liste aus zwei anderen Listen, wende eine Funktion an und füge die Ausgabe an jede Liste an?

Ich muss einige Daten (Clients und Produkte) von einem WebService abrufen. Dieser Code ruft die Daten ab und wandelt sie in Listen um, in denen Wörterbücher enthalten sind.

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']] 

Was ich tun muss, ist, zwei Listen zu erstellen, eine für Kunden und eine für Produkte. Wählen Sie einige spezifische Elemente für jeden Kunden und Produkt und erstellen Sie eine neue Liste, die wie dieser

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 ,...] , ...] 

Dann bewerben Sie eine Funktion suchen, die Kunden mit Produkten und fügen Sie das Ergebnis in der Liste beziehen wird, die diese Ausgabe erzeugt:

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 

Dies gibt einen Fehler zurück: Indexerror: Listenindex außerhalb des zulässigen Bereichs und dies mit

c = [] 
for key in con: 
    c = [key['genero'], key['complexion'], key['tallaCamisa'], key['tallaPantalon'], key['edad'], key['ubicacion'], 
     key['valorComercial'], key['valorCompra'], key['id']] 

nimmt nur die Elemente nur aus dem ersten einer der Liste der Listen. Jede Hilfe wird geschätzt.

+2

Bitte lesen Sie [Erstellen eines minimalen, vollständigen und überprüfbaren Beispiels] (http://stackoverflow.com/help/mcve). Entfernen Sie am Anfang alle unnötigen Codes und geben Sie Beispiele für die Eingabe- und Ausgabelisten an. –

+0

Ich tat, ich weiß nicht, was du meinst – marco

+0

Ich habe nicht verstanden, gelingt es Ihnen, die Daten aus dem Internet abzurufen? Wie sieht es aus? Sie schaffen es, die Listen von Produkten und Kunden zu erstellen? Wie sehen sie aus? Das Problem liegt im ersten, dritten oder vierten Codeblock? –

Antwort

0

Ihre Schleifen scheinen nichts zu tun, z.B.

for key in con: 
    c = [key['genero'], key['complexion'], key['tallaCamisa'], key['tallaPantalon'], key['edad'], key['ubicacion'], 
     key['valorComercial'], key['valorCompra']] 

ersetzt c jedes Mal, und nur den letzten Wert vom letzten Mal durch die Schleife bekommen. Sie machen das gleiche für und das gleiche für .

Entweder:

c = [] 
for key in con: 
    c.append([key['genero'], key['complexion'], key['tallaCamisa'], key['tallaPantalon'], key['edad'], key['ubicacion'], 
      key['valorComercial'], key['valorCompra']]) 

oder

c = [[key['genero'], key['complexion'], key['tallaCamisa'], key['tallaPantalon'], key['edad'], key['ubicacion'], 
      key['valorComercial'], key['valorCompra'] for key in con] 

und das gleiche gilt für die anderen.

+0

Es hat Wunder gewirkt. Dadurch werden zwei Listen von Listen erstellt, eine für Konsumenten und eine für Produkte.Wie kann ich alle Produktlisten an den ersten Kunden, alle Produktlisten an den zweiten Kunden usw. anhängen? Um Listen von Listen zu machen, die aus einer Liste von Verbrauchern + den Daten von Produkten bestehen? – marco

Verwandte Themen