需要帮助,请处理此错误:
类型错误:“unicode”对象不支持项分配
木质素:menuDic[str(menu.id)]['menuDishes'][str(d.dish.dishType.name)]['dishTypeName'][str(d.dish.id)]={}
def getDishOfTheWeek():
menuDic = Ddict(dict)
for menu in Menus.select().where(state = True):
menuDic[str(menu.id)]={}
menuDic[str(menu.id)]['menuId']=menu.id
menuDic[str(menu.id)]['menuName']=menu.name
menuDic[str(menu.id)]['menuCountry']=menu.country.name
menuDic[str(menu.id)]['menuDishes']={}
for d in DishMenuRels.select().where(menu = menu.id).join(Dishes).join(DishTypes).order_by('name')
menuDic[str(menu.id)]['menuDishes'][str(d.dish.dishType.name)] = {}
menuDic[str(menu.id)]['menuDishes'][str(d.dish.dishType.name)]['dishTypeName'] = d.dish.dishType.name
menuDic[str(menu.id)]['menuDishes'][str(d.dish.dishType.name)]['dishTypeName'][str(d.dish.id)] = {}
menuDic[str(menu.id)]['menuDishes'][str(d.dish.dishType.name)]['dishTypeName'][str(d.dish.id)]['dishId'] = d.dish.id
menuDic[str(menu.id)]['menuDishes'][str(d.dish.dishType.name)]['dishTypeName'][str(d.dish.id)]['dishState'] = d.dish.name
menuDic[str(menu.id)]['menuDishes'][str(d.dish.dishType.name)]['dishTypeName'][str(d.dish.id)]['dishType'] = d.dish.price
menuDic[str(menu.id)]['menuDishes'][str(d.dish.dishType.name)]['dishTypeName'][str(d.dish.id)]['dishName'] = d.dish.country.name
print json.dumps(menuDic, indent=5, sort_keys=True)
谢谢
在这里,您将值
d.dish.dishType.name
(看起来是一个unicode字符串)分配给字典键'dishTypeName'
。然后,对该值使用项赋值;下面的内容与
d.dish.dishType.name[str(d.dish.id)] = {}
相同。不用说,这会导致错误,因为
d.dish.dishType.name
是一个不可变的字符串。我可以补充一下,你最好把这些作业分解成小块,也许有几个函数?这些长的赋值语句——我相信您已经注意到了——很难解释和调试。
相关问题 更多 >
编程相关推荐