2012-04-29 4 views
2

J'ai essayé d'ajouter une valeur à une clé de dictionnaire préexistante. La valeur provient du modèle db.Model Car avec la propriété price.Ajouter une valeur à une clé de dictionnaire préexistante en python

Essayé deux blocs de code (ci-dessous), mais recevant l'attribut AttributeError: L'objet 'GqlQuery' n'a pas d'attribut 'price'.

items = {"BE1234":"2","BE1923":"3","BE2032":"1", etc} 
------------------------------------------------------------ 
block 1) 
for item in items: 
    cars = db.GqlQuery('SELECT * FROM Car WHERE item=:1',item) 
    items[item] = cars.price 
------------------------------------------------------------ 
block 2) 
for item in items: 
    cars = db.GqlQuery('SELECT * FROM Car WHERE item=:1',item) 
    items.update({item:cars.price}) 

Ce que je cherche à obtenir est:

items = {"BE1234":["2","100"],"BE1923":["31","200"],"BE2032":["19","300"], etc}

Mise à jour (Code de travail final)

for item in items: 
    cars = db.GqlQuery('SELECT * FROM Car WHERE item=:1',item) 
    for car in cars: 
    items[item]=[items[item],str(car.price)] 
+0

assurez-vous que la requête ne retourne pas NONE et voiture de table a un prix de champ – shiva

Répondre

3

Construire une liste (valeur) à insérer et il suffit de mettre à jour la valeur d'une clé: items["BE1234"] = ["2", "100"]

détaillé (commentaire de Shiva a un « plus propre » façon de faire la même chose):

current_val = items["BE1234"] 
new_val = "100"; 
new_array = [current_val, new_val] 
items["BE1234"] = new_array 
+2

'>>> articles = { » BE1234 ":" 2 "," BE1923 ":" 3 "," BE2032 ":" 1 "} >>> car_price = 100 >>> articles ['BE1234'] = [articles ['BE1234'], car_price ] >>> articles {'BE2032': '1', 'BE1234': ['2', 100], 'BE1923': '3'} ' – shiva

+0

merci! très bien travaillé !!! – mrmo123

+0

question rapide ... sauriez-vous comment faire appel à cette valeur ?? donc si j'ai des items = {"BE1234": ["2", "100"], "BE1923": ["31", "200"]}, comment pourrais-je obtenir le 100 ?? – mrmo123

Questions connexes