繁体   English   中英

如何从Django Python中的给定字典中获取字段的值

[英]How to get value of fields from given dictionary in Django python

我已经使用下面的查询从特定表中获取结果。

industries.py:

from demo.models import IndustryCat1
import datetime
from django.db.models import Q

class Industries:

    @staticmethod
    def getIndustries(indId):
        """
            Get contacts from contact_list where invitor id is same as given owner_id.
            Args:
                 user_id
            Returns:
                 contact user object
        """
        try:

            return IndustryCat1.objects.filter()


        except IndustryCat1.DoesNotExist:
            return None

views.py:

# -*- coding: utf-8 -*-
from django.http import HttpResponse
from models import IndustryCat1
from demo.core.persistence.Industries import *
from django.shortcuts import get_object_or_404, render, render_to_response
from django.core import serializers
import json

def index(request):


    industry = Industries()
    qs = serializers.serialize("json", industry.getIndustries(1))

    return HttpResponse(qs)


    #return render(request, 'demo/test/isndustries_catagories.html', context)

qs返回的位置:

[{
    "model": "demo.industrycat1",
    "pk": 1,
    "fields": {
        "name": "Division A: Agriculture, Forestry, And Fishing"
    }
}, {
    "model": "demo.industrycat1",
    "pk": 2,
    "fields": {
        "name": "Division B: Mining"
    }
}, {
    "model": "demo.industrycat1",
    "pk": 3,
    "fields": {
        "name": "Division C: Construction"
    }
}, {
    "model": "demo.industrycat1",
    "pk": 4,
    "fields": {
        "name": "Division D: Manufacturing"
    }
}]

我想获取“字段”索引的值。 如果不可能,请提出其他建议,而不是序列化以获取查询返回的对象中的值。

提前致谢。

获取具有列表理解的所有名称。

names = [record['fields']['name'] for record in qs]

获取具有列表理解的所有fields

fields = [record['fields'] for record in qs]

使用列表理解:

data = [
    {
        "model": "demo.industrycat1", 
        "pk": 1, 
        "fields": {
            "name": "Division A: Agriculture, Forestry, And Fishing"
        }
    }, 
    {
        "model": "demo.industrycat1", 
        "pk": 2, 
        "fields": {
            "name": "Division B: Mining"
        }
    }, 
    {
        "model": "demo.industrycat1", 
        "pk": 3, 
        "fields": {
            "name": "Division C: Construction"
        }
    }, 
    {
        "model": "demo.industrycat1",
        "pk": 4,
        "fields": {
            "name": "Division D: Manufacturing"
        }
    }
]



print ([each_field["fields"]["name"] for each_field in data])

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM