Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/324.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
Django Python将json安排到单个节点中_Python_Django_Django Models_Django Rest Framework_Django Views - Fatal编程技术网

Django Python将json安排到单个节点中

Django Python将json安排到单个节点中,python,django,django-models,django-rest-framework,django-views,Python,Django,Django Models,Django Rest Framework,Django Views,我使用的是一个遗留数据库,它有2条记录,每条记录中的数据包含以下值:姓名、电子邮件、公司、电话 这两条记录包含相同的数据值,但电话的值不同 在JSON中检索它们时,我得到以下输出: "results": [ { "Name": "Mack", "Email": "Mack@email.com", "Company": "Company Name", "Phone": "12345678

我使用的是一个遗留数据库,它有2条记录,每条记录中的数据包含以下值:姓名、电子邮件、公司、电话

这两条记录包含相同的数据值,但电话的值不同

在JSON中检索它们时,我得到以下输出:

"results": [
        {
            "Name": "Mack",
            "Email": "Mack@email.com",
            "Company": "Company Name",
            "Phone": "123456789"
        },
        {
            "Name": "Mack",
            "Email": "Mack@email.com",
            "Company": "Company Name",
            "Phone": "1111111"
        }
    ]
我的问题:正如您所看到的,上面的输出中存在一些重复数据,那么是否有一种方法可以将JSON输出安排为以下内容:

"results": [
        {
            "Name": "Mack",
            "Email": "Mack@email.com",
            "Company": "Company Name",
            "Phone": "123456789"
            "Phone 2": "1111111"
        }
    ]
以下是Views.py文件的代码:

class DataView(viewsets.ModelViewSet):
    queryset = DataList.objects.all()

    serializer_class = DataSerializer
class DataSerializer(serializers.ModelSerializer):
    data_details = serializers.SerializerMethodField()

    class Meta:
        model = DataList
        fields = 'data_details'

    def get_data_details(self, obj):
        return [{
            'name': obj.name,
            'email': obj.email,
            'company': obj.company,
            'phone': obj.phone,

        }]
class Data(models.Model):
    name = models.CharField(db_column='name', primary_key=True, max_length=50)  
    email = models.CharField(db_column='email', max_length=50)
    company = models.CharField(db_column='company', max_length=100)
    phone= models.TextField(db_column='phone')  

    class Meta:
        managed = False 
        db_table = 'data_table'
以下是Serializers.py文件的代码:

class DataView(viewsets.ModelViewSet):
    queryset = DataList.objects.all()

    serializer_class = DataSerializer
class DataSerializer(serializers.ModelSerializer):
    data_details = serializers.SerializerMethodField()

    class Meta:
        model = DataList
        fields = 'data_details'

    def get_data_details(self, obj):
        return [{
            'name': obj.name,
            'email': obj.email,
            'company': obj.company,
            'phone': obj.phone,

        }]
class Data(models.Model):
    name = models.CharField(db_column='name', primary_key=True, max_length=50)  
    email = models.CharField(db_column='email', max_length=50)
    company = models.CharField(db_column='company', max_length=100)
    phone= models.TextField(db_column='phone')  

    class Meta:
        managed = False 
        db_table = 'data_table'
以下是models.py文件的代码:

class DataView(viewsets.ModelViewSet):
    queryset = DataList.objects.all()

    serializer_class = DataSerializer
class DataSerializer(serializers.ModelSerializer):
    data_details = serializers.SerializerMethodField()

    class Meta:
        model = DataList
        fields = 'data_details'

    def get_data_details(self, obj):
        return [{
            'name': obj.name,
            'email': obj.email,
            'company': obj.company,
            'phone': obj.phone,

        }]
class Data(models.Model):
    name = models.CharField(db_column='name', primary_key=True, max_length=50)  
    email = models.CharField(db_column='email', max_length=50)
    company = models.CharField(db_column='company', max_length=100)
    phone= models.TextField(db_column='phone')  

    class Meta:
        managed = False 
        db_table = 'data_table'

谢谢。

合并应该在什么时候进行?如果有任何重复的姓名,或者如果有重复的姓名和电子邮件,或者只有姓名、电子邮件和公司重复?您可能需要查看
dict.update()
函数。但是,这将替换您的手机值,因此如果您使用它,您必须确保您的钥匙具有不同的名称。嗨@CalebGoodman,重复数据将一直发生,因此如果可能,请立即合并Hi@JammyDodger,我在Django还是新手,那么我可以知道在哪里使用它吗?在哪个文件中?