如何从字典列表中删除上方的数组列表?

问题描述

我有一个字典列表,想摆脱外部列表数组。 考虑下面的数组,

[
{
    "stores": [
        {
            "id": 1,"storeName": "Green Mart","lat": 12.905616,"lon": 77.610101,"offer": [
                {
                    "offer": "Get 10% OFF on Fruits & 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)

解决方法

您可以使用list的索引来引用内部字典并省略外部括号。

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

以下是 a [0] 的输出:

    {
        "stores": [
            {
                "id": 1,]
    }