IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Réseau/Web Python Discussion :

Bug de désérialisation Marshmallow Nested fields [Python 3.X]


Sujet :

Réseau/Web Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Profil pro
    Chef de projet
    Inscrit en
    Août 2006
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Chef de projet

    Informations forums :
    Inscription : Août 2006
    Messages : 7
    Par défaut Bug de désérialisation Marshmallow Nested fields
    Bonjour,
    Je pensais avoir compris le fonctionnement mais la je sèche.
    Voici un code tut simple qui retourne des classes différentes pour une structure identique !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    from marshmallow import Schema, fields, post_load
     
    class Class_test_struct1():
        def __init__(self, attr1): self.attr1=attr1
     
    class Class_test_struct1Schema(Schema):
        attr1=fields.String()
     
    class Class_test_struct2():
        def __init__(self, attr2): self.attr2=attr2
     
    class Class_test_struct2Schema(Schema):
        attr2=fields.String()
     
    class Class_test():
        def __init__(self, struct1, struct2):
            self.struct1=struct1,
            self.struct2=struct2
     
    class Class_testSchema(Schema):
        struct1=fields.Nested(Class_test_struct1Schema)
        struct2=fields.Nested(Class_test_struct2Schema)
     
        @post_load
        def make_Class_test(self, data, **kwargs):
            return Class_test(**data)
     
    inputJson={
        "struct1": { "attr1": "where is" },
        "struct2": { "attr2": "the bug?" }
    }
     
    schema = Class_testSchema()
    result = schema.load(inputJson)
     
    print("Returned class: %s" % type(result))
    print("type(result.struct1) = %s" % type(result.struct1))
    print(result.struct1)
    print("type(result.struct2) = %s" % type(result.struct2))
    print(result.struct2)
    Résultat de l'exécution :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Returned class: <class '__main__.Class_test'>
    type(result.struct1) = <class 'tuple'>
    ({'attr1': 'where is'},)
    type(result.struct2) = <class 'dict'>
    {'attr2': 'the bug?'}
    Pourquoi un tuple ??

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 754
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 754
    Par défaut
    Citation Envoyé par Aslak Voir le message
    Pourquoi un tuple ??
    Au pif: c'est la ',' qui traine ligne 14 fait le tuple.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre du Club
    Profil pro
    Chef de projet
    Inscrit en
    Août 2006
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Chef de projet

    Informations forums :
    Inscription : Août 2006
    Messages : 7
    Par défaut
    Merci c'est bien ca

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Accès aux attributs d'un nested field
    Par chuuby dans le forum jQuery
    Réponses: 22
    Dernier message: 07/05/2012, 12h28
  2. Réponses: 5
    Dernier message: 08/12/2008, 18h34
  3. Bug "field does not exist"
    Par patrick58 dans le forum Requêtes
    Réponses: 6
    Dernier message: 10/07/2008, 15h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo