[英]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.