如何通过名称访问python字典中的项目

Posted

技术标签:

【中文标题】如何通过名称访问python字典中的项目【英文标题】:how to access items in a python dictionary by their name 【发布时间】:2020-04-12 16:35:10 【问题描述】:

我正在使用下面的代码创建一个购物车

`

SESSION_COOKIE_AGE=300 
SESSION_EXPIRE_AT_BROWSER_CLOSE =True
@require_POST
def cart_add(request, product_id):
    product = get_object_or_404(Product, id=product_id)
    quantity = request.POST.get('quantity')
    product_id =str(product.id)
    request.session[product_id] ="product_name":str(product.title),"price":str(product.price),"quantity":quantity
    items =request.session.items()
    print(items) 
    return render(request, 'cart/display_cart.html', "products":request.session)`

场景一 当我像这样将项目传递给我的视图时=> return render(request, 'cart/display_cart.html', "products":items) 并使用% for item in products % item.product_name % endfor % 在模板中循环它没有显示。但是当我打印它=> print(items) 我在我的控制台中得到dict_items([('7', 'product_name': 'Tomatoe', 'price': '15.00', 'quantity': '3')])。如何打印模板中的项目

场景 2 当我像这样通过 request.session => return render(request, 'cart/display_cart.html', "products":request.session) 我这样做了

 % for key, value in products.items %
         <li><a href="key">value</a></li>
        % endfor % 

在我的模板中,我得到 'product_name':'西红柿','价格':'20.00','数量':'1'。如何使用 product_name 而不是 key 在模板中显示项目?谢谢

【问题讨论】:

【参考方案1】:

items 是一个嵌套的dict

用途:

% for k, item in products.items %
     item.product_name 
% endfor %

【讨论】:

以上是关于如何通过名称访问python字典中的项目的主要内容,如果未能解决你的问题,请参考以下文章

django-访问python字典中的项目

Python - 从字典中访问值

访问 json 文件列表中的多个字典

python基础三(字典)

Python基础---序列对象

Python导出Mysql字典表