Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 仅从QuerySet中提取不带键的值,并将其保存到列表中_Python_Django_Django Queryset - Fatal编程技术网

Python 仅从QuerySet中提取不带键的值,并将其保存到列表中

Python 仅从QuerySet中提取不带键的值,并将其保存到列表中,python,django,django-queryset,Python,Django,Django Queryset,我无法仅从QuerySet获取值。 我有我的桌子: class Temperature(models.Model): id = models.IntegerField(primary_key=True) # AutoField? name = models.TextField(blank=True, null=True) value = models.IntegerField(blank=True, null=True) time = models.TextFi

我无法仅从QuerySet获取值。 我有我的桌子:

class Temperature(models.Model):
    id = models.IntegerField(primary_key=True)  # AutoField?
    name = models.TextField(blank=True, null=True)
    value = models.IntegerField(blank=True, null=True)
    time = models.TextField(blank=True, null=True)

    class Meta:
        managed = False
        db_table = 'temperature'
在views.py中:

class ChartData(APIView):
    authentication_classes = []
    permission_classes = []

    def get(self, request, format=None):
        labels = list(Temperature.objects.using('sensors').values('time')) 
        temp_values = list(Temperature.objects.using('sensors').values('value'))

        data = {
            "labels": labels,
            "temperature": temp_values,
        }
        return Response(data)
使用html文件中的console.log()检查值,目前它们是:

但我只想检索值,没有键。例如:


如果我正确理解了您的问题,我将非常感谢您提供的任何帮助,我认为您正在寻找的不是


此外,您可能不需要在那里调用
list()
,这只会降低速度并浪费内存。

为此,您必须使用“values\u list”函数而不是“values”,如果您只需要一个字段,请使用flat=True:

temp_values = Temperature.objects.using('sensors').values_list('value', flat=True)
您可以改为使用,并指定
flat=True
,如:

def get(self, request, format=None):
    labels = list(Temperature.objects.using('sensors').values_list('time', flat=True)) 
    temp_values = list(Temperature.objects.using('sensors').values_list('value', flat=True))
    # ...

这真的很接近。这返回值,但作为一个列表,这就是我要搜索的!非常感谢你!我发现并尝试了不同的解决方案,真是疯了……谢谢!你解决了我即将面临的第一个和第二个问题:)
from operator import itemgetter

def get(self, request, format=None):
    qs = Temperature.objects.using('sensors').values_list('time', 'value')
    labels = list(map(itemgetter(0), qs))
    temp_values = list(map(itemgetter(1), qs))
    # ...