[PYTHON] Je suis accro à la différence dans la façon dont Flask et Django reçoivent les données JSON

Bonsoir, c'est @ 0yan. Aujourd'hui, lorsque j'ai intégré l'application Flask de Trello Bot pour LINE WORKS dans l'application Django de Bot qui prend en charge les requêtes LINE WORKS, j'étais accro à la différence de réception des données JSON (Dasai ...), alors je me sentais comme un enseignant foiré. écrire.

Pour flacon

Il peut être reçu en tant que valeur de type dictionnaire avec data = request.json ['key'].

Exemple spécifique (dans le cas de Flask)


@app.route('/webhook', methods=['HEAD', 'POST'])
def comment_notification_to_talk_room():
    if request.method == 'HEAD':
        return '', 200
    elif request.method == 'POST':
        action_type = request.json['action']['display']['translationKey']  #★ Coco
        if action_type == 'action_comment_on_card':
            card_name = request.json['action']['data']['card']['name']
            user_name = request.json['action']['memberCreator']['fullName']
            comment = request.json['action']['data']['text']
            message = f'{user_name}Commenté.\n [carte]{card_name}\n [Commentaire]{comment}'
            talk_bot.send_text_message(send_text=message)
            return '', 200
    else:
        abort(400)

Pour Django

Vous devez convertir de JSON en type de dictionnaire, comme body = json.loads (request.body).

Exemple spécifique (pour Django)


def comment_notification_to_talk_room(request, bot_no, account_id=None, room_id=None):
    talk_bot = TalkBotApi(api_id, server_api_consumer_key, server_id, private_key, domain_id, bot_no)

    #Convertir le corps de la requête de JSON en type dictionnaire, action_Type d'extrait
    body = json.loads(request.body)  #★ Coco
    action_type = body['action']['display']['translationKey']

    #Envoyez les commentaires de Trello à la salle de conférence LINE WORKS
    if action_type == 'action_comment_on_card':
        card_name = body['action']['data']['card']['name']
        user_name = body['action']['memberCreator']['fullName']
        comment = body['action']['data']['text']
        message = f'{user_name}Commenté.\n [carte]{card_name}\n [Commentaire]{comment}'
        if account_id is not None:
            talk_bot.send_text_message(send_text=message, account_id=account_id)
            logger.info(f'ID de compte de réussite de la notification:{account_id}')
        elif room_id is not None:
            talk_bot.send_text_message(send_text=message, room_id=room_id)
            logger.info(f'Notification de roomID réussie:{room_id}')
        else:
            logger.error('accoutId,Vous devez spécifier l'un ou l'autre roomId.')

Non, je passerais quelques heures à faire une chose aussi stupide ... J'espère que cet échec aide quelqu'un.

Recommended Posts

Je suis accro à la différence dans la façon dont Flask et Django reçoivent les données JSON
Comment retourner les données contenues dans le modèle django au format json et les mapper sur le dépliant
Comment obtenir la différence de date et d'heure en secondes avec Python
Comment compter le nombre d'éléments dans Django et sortir dans le modèle
La première étape de l'analyse du journal (comment formater et mettre les données du journal dans Pandas)
Comment utiliser argparse et la différence entre optparse
POSTER l'image avec json et la recevoir avec flask
Comment utiliser Decorator dans Django et comment le créer
Comment écrire une validation personnalisée dans Django REST Framework
Comment générer une requête à l'aide de l'opérateur IN dans Django
Comment obtenir toutes les clés et valeurs du dictionnaire
Dans Django, comment abréger la longue chaîne de caractères affichée au milieu ...
Comment refléter CSS dans Django
Comment donner et signifier l'option des contraintes dans scipy.optimize.minimize
Comment afficher les octets de la même manière en Java et Python
Comment diviser et traiter une trame de données à l'aide de la fonction groupby
Comment vérifier la version de Django
Comment écrire le bon shebang dans les scripts Perl, Python et Ruby
Comment supprimer des sessions expirées dans Django
Envoyer et recevoir des données d'image au format JSON en Python sur le réseau
Le nom du fichier était mauvais en Python et j'étais accro à l'importation
Comment faire des événements envoyés par le serveur dans Django
Comment gérer les caractères déformés dans json de Django REST Framework
Comment copier et coller le contenu d'une feuille au format JSON avec une feuille de calcul Google (en utilisant Google Colab)
Comment utiliser is et == en Python
Comment enregistrer une seule donnée sur l'écran de gestion de Django
(Journal 1) Comment créer, parcourir et enregistrer des données dans la base de données SQL du service Microsoft Azure avec python
Je veux visualiser où et combien de personnes se trouvent dans l'usine
Comment passer le chemin vers la bibliothèque construite avec pyenv et virtualenv avec PyCharm
Comment identifier de manière unique la source d'accès dans la vue de classe générique Django
[Python] Comment nommer les données de table et les sortir avec csv (méthode to_csv)
Comment utiliser la bibliothèque C en Python
Comment recevoir des arguments de ligne de commande en Python
Comment générer une séquence en Python et C ++
Comment implémenter la fonctionnalité de type helper Rails dans Django
Recevoir et afficher les données de formulaire HTML en Python
Comment refléter ImageField dans Django + Docker (oreiller)
[Django] Comment obtenir des données en spécifiant SQL.
[Python] Comment lire les données de CIFAR-10 et CIFAR-100
À propos de la différence entre "==" et "is" en python
[Introduction à Python] Comment gérer les données au format JSON
Comment imprimer des messages de débogage sur la console Django
Addictif quand Kintone est un magasin de données
Comment créer des données à mettre dans CNN (Chainer)
Comment obtenir les fichiers dans le dossier [Python]
Exemple de serveur d'API qui reçoit JSON dans Golang
Comment lire les données de séries chronologiques dans PyTorch
POST JSON avec Python et recevez avec PHP
Comment créer une API Rest dans Django
Nettoyage des données Comment gérer les valeurs manquantes et aberrantes
Connectez-vous avec json en utilisant pygogo.
Comment tracer l'autocorrélation et l'autocorrélation partielle avec Python
Comment diviser les données de formation en machine learning en variables objectives et autres dans Pandas
Comment utiliser fixture dans Django pour saisir des exemples de données associés au modèle utilisateur
Je voulais juste extraire les données de la date et de l'heure souhaitées avec Django