nea*_*mcb 15
import numpy as np
qs = MyModel.objects.all()
vlqs = qs.values_list()
r = np.core.records.fromrecords(vlqs, names=[f.name for f in MyModel._meta.fields])
Run Code Online (Sandbox Code Playgroud)
它直接使用QuerySet迭代器,避免了创建python列表的浪费时间和浪费的步骤.它还使用MyModel._meta.fields从模型中获取实际的字段名称,如在Django中获取模型的字段中所述
如果您只想将一个字段(例如模型的"投票"字段)提取到一维数组中,您可以执行以下操作:
vlqs = qs.values_list('votes', flat=True)
votes = np.fromiter(vlqs, numpy.dtype('int_'))
Run Code Online (Sandbox Code Playgroud)
这就像问"如何将冰箱的内容转换成晚餐?".这取决于你的冰箱里有什么,以及你想吃什么.简短的回答(相当于说"通过烹饪")是迭代查询集,构建您想要实例化数组的任何复合数据类型的对象(通常是可迭代的和字典).答案很长,取决于你真正想要完成的事情.
我在寻找什么:
从QuerySet qs得到vlqs( django.db.models.query.ValuesListQuerySet)
vlqs = qs.values_list()
Run Code Online (Sandbox Code Playgroud)隐藏vlqs到列表
mylist = list(vlqs)
Run Code Online (Sandbox Code Playgroud)创建 numpy 记录数组
# Names are the model fields
r = np.core.records.array(mylist, names='field1, field2, field3')
Run Code Online (Sandbox Code Playgroud)| 归档时间: |
|
| 查看次数: |
4809 次 |
| 最近记录: |