我正在使用 Django 3x。我有一張桌子叫做 Book。當我為此撰寫查詢時,我得到的資料如下:
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]}
如何以這種格式創建資料。
請建議最好的方法來做到這一點。一個解釋將不勝感激。謝謝!。
uj5u.com熱心網友回復:
如果你這樣做:
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']}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/365356.html
標籤:Python 姜戈 django 模型 Django 休息框架
下一篇:用于計時的Django欄位
