从 Django 查询集中提取数据并插入 Python 列表
Extracting data from Django Queryset and inserting into a Python list
我正在尝试将 Django 模型中的一列数据放入 python 列表中,以便在 Django 视图中进一步处理。
我已经成功创建了一个简单的 Django 模型并填充了数据。这些字段是:“id”、“x_coord”、“y_coord”。我有 运行 几个命令来从模型中提取数据。我想将“x_coord”字段中的值放入 Python 列表中,这样我就可以将 statistics.mean 方法应用于所有值。我在提取数据方面取得了一些成功,请参阅下面我在 shell 中发出的 Django 命令,但我无法将数据放入 Python 列表中。如有任何帮助,我们将不胜感激。
模型定义
#
class CC_pts_to_avg(models.Model):
x_coord = models.DecimalField(max_digits=3, decimal_places=2)
y_coord = models.DecimalField(max_digits=3, decimal_places=2)
#
def __str__(self):
return self.x_coord
在 shell
中发出的命令
set environment
(in mysite directory) python manage.py shell
from polls.models import CC_pts_to_avg
temp_list = CC_pts_to_avg.objects.values_list('x_coord',flat=True)
>>> temp_list
<QuerySet [Decimal('0.60'), Decimal('0.60'), Decimal('0.45'), Decimal('0.60'), Decimal('0.90'), Decimal('0.60'), Decimal('0.60'), Decimal('0.50'), Decimal('0.60'), Decimal('0.60'), Decimal('0.60'), Decimal('0.65'), Decimal('0.60'), Decimal('0.60'), Decimal('0.60'), Decimal('0.60'), Decimal('0.60'), Decimal('0.60'), Decimal('0.50'), Decimal('0.75'), '...(remaining elements truncated)...']>
>>>
>>> temp_list[0]
Decimal('0.60')
>>> temp_list[2]
Decimal('0.45')
>>> type(temp_list[0])
<class 'decimal.Decimal'>
>>> type(temp_list)
<class 'django.db.models.query.QuerySet'>
>>>
values_list
方法returns一个ValuesListQuerySet
。
让列表更改您的代码如下
temp_list = list(CC_pts_to_avg.objects.values_list('x_coord',flat=True))
我正在尝试将 Django 模型中的一列数据放入 python 列表中,以便在 Django 视图中进一步处理。
我已经成功创建了一个简单的 Django 模型并填充了数据。这些字段是:“id”、“x_coord”、“y_coord”。我有 运行 几个命令来从模型中提取数据。我想将“x_coord”字段中的值放入 Python 列表中,这样我就可以将 statistics.mean 方法应用于所有值。我在提取数据方面取得了一些成功,请参阅下面我在 shell 中发出的 Django 命令,但我无法将数据放入 Python 列表中。如有任何帮助,我们将不胜感激。
模型定义
#
class CC_pts_to_avg(models.Model):
x_coord = models.DecimalField(max_digits=3, decimal_places=2)
y_coord = models.DecimalField(max_digits=3, decimal_places=2)
#
def __str__(self):
return self.x_coord
在 shell
中发出的命令set environment
(in mysite directory) python manage.py shell
from polls.models import CC_pts_to_avg
temp_list = CC_pts_to_avg.objects.values_list('x_coord',flat=True)
>>> temp_list
<QuerySet [Decimal('0.60'), Decimal('0.60'), Decimal('0.45'), Decimal('0.60'), Decimal('0.90'), Decimal('0.60'), Decimal('0.60'), Decimal('0.50'), Decimal('0.60'), Decimal('0.60'), Decimal('0.60'), Decimal('0.65'), Decimal('0.60'), Decimal('0.60'), Decimal('0.60'), Decimal('0.60'), Decimal('0.60'), Decimal('0.60'), Decimal('0.50'), Decimal('0.75'), '...(remaining elements truncated)...']>
>>>
>>> temp_list[0]
Decimal('0.60')
>>> temp_list[2]
Decimal('0.45')
>>> type(temp_list[0])
<class 'decimal.Decimal'>
>>> type(temp_list)
<class 'django.db.models.query.QuerySet'>
>>>
values_list
方法returns一个ValuesListQuerySet
。
让列表更改您的代码如下
temp_list = list(CC_pts_to_avg.objects.values_list('x_coord',flat=True))