【问题标题】:How to implement Specific field data into one list and Another filed data into another list in Django如何在Django中将特定字段数据实现到一个列表中并将另一个字段数据实现到另一个列表中
【发布时间】:2021-11-24 09:58:08
【问题描述】:

我正在使用 Django 3x。我有一张叫书的桌子。当我为此编写查询时,我得到这样的数据:

book_details = Book.objects.all().values()
print(book_details)

<QuerySet [{'id': 1, 'author': 'ABC', 'price': 150, 'category': 'Comic', 'available': 1}, {'id': 2, 'author': 'XYZ', 'price': 500, 'category': 'Historical Fiction', 'available': 1}, {'id': 3, 'author': 'MNO', 'price': 200, 'category': 'Horror', 'available': 0}]>

我正在尝试以以下格式创建数据

{'id':[1,2,3], 'author':['ABC', 'XYZ', 'MNO'], 'price':[150,500,200], 'category':['Comic', 'Historical Fiction', 'Horror'], 'available':[1,1,0]}

如何创建这种格式的数据。

请告知最好的方法。一个解释将不胜感激。谢谢!。

【问题讨论】:

    标签: python django django-models django-rest-framework


    【解决方案1】:

    如果你这样做:

    lst_of_dicts = list(book_details)
    

    您将获得以下信息,因此如果您打印lst_of_dicts ,它将如下所示:

    [{'id': 1, 'author': 'ABC', 'price': 150, 'category': 'Comic', 'available': 1},
    {'id': 2, 'author': 'XYZ', 'price': 500, 'category': 'Historical Fiction', 'available': 1}, 
    {'id': 3, 'author': 'MNO', 'price': 200, 'category': 'Horror', 'available': 0}]
    

    所以这是一个字典列表,而你想要一个列表的字典,所以你必须做进一步的步骤,那就是这个:

    from itertools import chain   # Necessary import
    
    keys = set(chain(*[dic.keys() for dic in lst_of_dicts ]))
    final_dict = {key : [dic[key] for dic in lst_of_dicts if key in dic] for key in keys }
    

    final_dict 将如下所示:

    {'id': [1, 2, 3], 'author': ['ABC', 'XYZ', 'MNO'], 'available': [1, 1, 0], 'price': [150, 500, 200], 'category': ['Comic', 'Historical Fiction', 'Horror']}
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-14
      • 1970-01-01
      • 1970-01-01
      • 2013-02-20
      • 2012-12-02
      相关资源
      最近更新 更多