2012-04-29 91 views
2

我一直在尝试向预先存在的字典键值添加一个值。该值来自db.Model Car,属性名称为price在python中为预先存在的字典键值添加一个值

尝试了两段代码(下面),但得到了AttributeError:'GqlQuery'对象没有属性'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}) 

什么,我希望得到的是:

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

更新(最后的工作代码)

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

确保查询没有返回NONE和台车有一个字段的价格 – shiva 2012-04-29 06:28:16

回答

3

构建一个列表(value)插入和只需更新一个密钥的值: items["BE1234"] = ["2", "100"]

详细(湿婆的评论有做同样的事情的一个“干净”的方式):

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

'>>>项目= {” BE1234“:”2“,”BE1923“:”3“,”BE2032“:”1“} >>> car_price = 100 >>> items ['BE1234'] = [items ['BE1234'],car_price ] >>> items {'BE2032':'1','BE1234':['2',100],'BE1923':'3'}' – shiva 2012-04-29 06:25:12

+0

谢谢!工作很棒! – mrmo123 2012-04-29 06:52:34

+0

快速问题...你会碰巧知道如何调用这个值?所以如果我有物品= {“BE1234”:[“2”,“100”],“BE1923”:[“31”,“200”]},我怎么能得到100? – mrmo123 2012-04-29 07:40:38

相关问题