如何將Django QuerySet轉換爲一系列的字典?我還沒有找到答案,所以我想知道我是否缺少一些人人使用的常用幫手功能。如何將Django QuerySet轉換爲字典列表?
回答
使用.values()
方法:
>>> Blog.objects.values()
[{'id': 1, 'name': 'Beatles Blog', 'tagline': 'All the latest Beatles news.'}],
>>> Blog.objects.values('id', 'name')
[{'id': 1, 'name': 'Beatles Blog'}]
注:結果是QuerySet
它很像一個列表,但實際上不是的list
一個實例。如果您確實需要list
的實例,請使用list(Blog.objects.values(…))
。
您不完全定義字典應該是什麼樣子,但很可能您指的是QuerySet.values()
。從official django documentation:
返回
ValuesQuerySet
- 一個QuerySet
子類作爲可迭代使用時,而不是模型實例 對象返回 字典。這些字典中的每一個都代表一個對象,其中鍵 對應於模型對象的屬性名稱。
的.values()
方法將返回ValuesQuerySet
類型的結果通常是你在大多數情況下需要什麼。
但是,如果您願意,可以使用Python列表理解將ValuesQuerySet
轉換爲本機Python列表,如下例所示。
result = Blog.objects.values() # return ValuesQuerySet object
list_result = [entry for entry in result] # converts ValuesQuerySet into Python list
return list_result
我發現上面的幫助,如果你正在編寫單元測試,並需要斷言函數的預期收益值,實際的返回值匹配,在這種情況下,兩個expected_result
和actual_result
必須是同一類型的(例如字典)。
actual_result = some_function()
expected_result = {
# dictionary content here ...
}
assert expected_result == actual_result
或者你可以用這個'list(result) –
您可以使用您從您作出的查詢的Django模型領域得到了字典的values()
方法,然後你可以很容易地通過一個索引值來訪問每個字段。
這樣稱呼它 -
myList = dictOfSomeData.values()
itemNumberThree = myList[2] #If there's a value in that index off course...
如果需要本地數據類型出於某種原因(如JSON序列化),這是我的快速「N」骯髒的方式做到這一點:
data = [{'id': blog.pk, 'name': blog.name} for blog in blogs]
正如你所看到的那樣,構建列表中的字典並不真正幹,所以如果有人知道更好的方法...
- 1. 將queryset轉換爲字典的字典django
- 2. 將Django queryset轉換爲JSON序列化的字典
- 3. 如何將列表轉換爲字典?
- 4. 如何將此SQL轉換爲Django QuerySet?
- 5. 將字典列表轉換爲字典
- 6. 如何將字典列表轉換爲Python字典字典
- 7. 如何在Python/Django中將字典值轉換爲列表?
- 8. 將列表轉換爲字典列表
- 9. 如何將字典的字典轉換爲列表到字典列表?
- 10. Python/Django QuerySet到列表的字典?
- 11. 如何將字典列表轉換爲列表列表?
- 12. 如何將字典列表轉換爲字典?
- 13. 如何將元組字典轉換爲列表字典(Python)?
- 14. 轉換列表爲字典
- 15. Django:如何將QuerySet轉換爲字符串
- 16. 將列表字典轉換爲字典列表
- 17. 將字典列表轉換爲唯一的字典列表
- 18. 如何轉換列表爲字典
- 19. Django queryset。轉換輸出到列表
- 20. 如何將列表的列表轉換爲Python中的字典?
- 21. 如何將python字典列表轉換爲dictonary的新列表?
- 22. 將元組列表轉換爲字典
- 23. 將列表轉換爲字典
- 24. (Python)將字典轉換爲列表?
- 25. 將JSON轉換爲字典列表
- 26. 將字典轉換爲列表
- 27. 將嵌套列表轉換爲字典
- 28. 將列表轉換爲多值字典
- 29. 將列表轉換爲嵌套字典
- 30. 將多個列表轉換爲字典
是的,你可以通過傳遞參數來指定你希望'values()'返回哪些字段。還要小心,雖然它看起來像值返回一個字典列表其實它是一個''而不是一個列表。 –
dm03514
雖然 – astreltsov
實際上並未返回列表謝謝!更新。 –