Как я могу удалить верхний список массивов из списка словарей?

#python #django #django-rest-framework #django-views

#питон #джанго #django-rest-framework #django-представления #python #django

Вопрос:

У меня есть список словарей, и я хочу избавиться от внешнего массива списков. Примите во внимание приведенный ниже массив,

 [
{
    "stores": [
        {
            "id": 1,
            "storeName": "Green Mart",
            "lat": 12.905616,
            "lon": 77.610101,
            "offer": [
                {
                    "offer": "Get 10% OFF on Fruits amp; Vegetables"
                }
            ]
        },
        
    ]
}
]
  

Мой сериализатор выглядит следующим образом,

 class storesSerializer(serializers.ModelSerializer):
  offer = StoreOffersSerializer(read_only=True, many=True)
  storeName = serializers.CharField(source="store_name")
  lat = serializers.FloatField(source="latitude")
  lon = serializers.FloatField(source="longitude")

  class Meta:
    model = Vendors
    fields = ('id', 'storeName', 'lat', 'lon', 'offer')

class CategoryStoreSerializer(serializers.ModelSerializer):
  stores = storesSerializer(read_only=True, many=True)

  class Meta:
    model = CategoryStore
    fields = ('stores',)
  

и определение представления является,

     if request.method == 'POST':
      c = CategoryStore.objects.filter(category=request.data['cat_id'])
      serializer = CategoryStoreSerializer(c, many=True)
      return Response(serializer.data)
  

Комментарии:

1. пожалуйста, объясните вашу проблему подробнее?

Ответ №1:

Вы можете использовать индекс списка для ссылки на внутренний словарь и опустить внешнюю скобку.

 a = [
    {
        "stores": [
            {
                "id": 1,
                "storeName": "Green Mart",
                "lat": 12.905616,
                "lon": 77.610101,
                "offer": [
                    {
                        "offer": "Get 10% OFF on Fruits amp; Vegetables"
                    }
                ]
            },
    
        ]
    }
    ]
  

Ниже приведен вывод a[0]:

     {
        "stores": [
            {
                "id": 1,
                "storeName": "Green Mart",
                "lat": 12.905616,
                "lon": 77.610101,
                "offer": [
                    {
                        "offer": "Get 10% OFF on Fruits amp; Vegetables"
                    }
                ]
            },
    
        ]
    }