[PYTHON] Ich bin süchtig nach dem Unterschied, wie Flask und Django JSON-Daten empfangen

Guten Abend, das ist @ 0yan. Als ich heute die Flask-App von Trello Bot für LINE WORKS in die Django-App von Bot integriert habe, die LINE WORKS-Anfragen unterstützt, war ich süchtig nach dem Unterschied beim Empfang von JSON-Daten (Dasai ...) und fühlte mich wie ein durcheinandergebrachter Lehrer. schreiben.

Für Flasche

Es kann als Wörterbuchtypwert mit data = request.json ['key'] empfangen werden.

Spezifisches Beispiel (im Fall von 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}Kommentiert.\n [Karte]{card_name}\n [Kommentar]{comment}'
            talk_bot.send_text_message(send_text=message)
            return '', 200
    else:
        abort(400)

Für Django

Sie müssen von JSON in einen Wörterbuchtyp konvertieren, z. B. "body = json.loads (request.body)".

Spezifisches Beispiel (für 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)

    #Konvertieren Sie den Anforderungshauptteil von JSON in den Wörterbuchtyp, die Aktion_Typ extrahieren
    body = json.loads(request.body)  #★ Coco
    action_type = body['action']['display']['translationKey']

    #Senden Sie Trellos Kommentare an den LINE WORKS-Talkroom
    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}Kommentiert.\n [Karte]{card_name}\n [Kommentar]{comment}'
        if account_id is not None:
            talk_bot.send_text_message(send_text=message, account_id=account_id)
            logger.info(f'Benachrichtigungserfolg accountID:{account_id}')
        elif room_id is not None:
            talk_bot.send_text_message(send_text=message, room_id=room_id)
            logger.info(f'Benachrichtigung erfolgreich roomID:{room_id}')
        else:
            logger.error('accoutId,Sie müssen entweder roomId angeben.')

Nein, ich würde ein paar Stunden damit verbringen, so etwas Dummes zu tun ... Ich hoffe, dieser Fehler hilft jemandem.

Recommended Posts

Ich bin süchtig nach dem Unterschied, wie Flask und Django JSON-Daten empfangen
So geben Sie die im Django-Modell enthaltenen Daten im JSON-Format zurück und ordnen sie der Broschüre zu
So ermitteln Sie mit Python den Unterschied zwischen Datum und Uhrzeit in Sekunden
So zählen Sie die Anzahl der Elemente in Django und geben sie in die Vorlage aus
Der erste Schritt zur Protokollanalyse (Formatieren und Einfügen von Protokolldaten in Pandas)
Wie man Argparse benutzt und den Unterschied zwischen Optparse
POST das Bild mit json und erhalte es mit der Flasche
Wie man Decorator in Django benutzt und wie man es macht
So schreiben Sie eine benutzerdefinierte Validierung in Django REST Framework
So generieren Sie eine Abfrage mit dem IN-Operator in Django
So erhalten Sie alle Schlüssel und Werte im Wörterbuch
Wie man in Django die angezeigte lange Zeichenkette in der Mitte abkürzt ....
Wie man CSS in Django reflektiert
Geben und meinen Sie die Einschränkungsoption in scipy.optimize.minimize
So zeigen Sie Bytes in Java und Python auf die gleiche Weise an
Teilen und Verarbeiten eines Datenrahmens mithilfe der Groupby-Funktion
So überprüfen Sie die Version von Django
So schreiben Sie den richtigen Shebang in Perl-, Python- und Ruby-Skripten
So löschen Sie abgelaufene Sitzungen in Django
Senden und Empfangen von Bilddaten als JSON in Python über das Netzwerk
Der Dateiname war in Python schlecht und ich war süchtig nach Import
So führen Sie vom Server gesendete Ereignisse in Django durch
Wie man mit verstümmelten Charakteren in json von Django REST Framework umgeht
Kopieren und Einfügen des Inhalts eines Blattes im JSON-Format mit einer Google-Tabelle (mithilfe von Google Colab)
Verwendung ist und == in Python
So registrieren Sie nur eine Daten auf dem Django-Verwaltungsbildschirm
(Tagebuch 1) Erstellen, Durchsuchen und Registrieren von Daten in der SQL-Datenbank des Microsoft Azure-Dienstes mit Python
Ich möchte visualisieren, wo und wie viele Leute in der Fabrik sind
So übergeben Sie den Pfad zu der mit pyenv und virtualenv mit PyCharm erstellten Bibliothek
So identifizieren Sie die Zugriffsquelle in der generischen Klassenansicht von Django eindeutig
[Python] So benennen Sie Tabellendaten und geben sie mit csv aus (to_csv-Methode)
Verwendung der C-Bibliothek in Python
So empfangen Sie Befehlszeilenargumente in Python
So generieren Sie eine Sequenz in Python und C ++
So implementieren Sie Rails-Helfer-ähnliche Funktionen in Django
Empfangen und Anzeigen von HTML-Formulardaten in Python
So reflektieren Sie ImageField in Django + Docker (Kissen)
[Django] So erhalten Sie Daten durch Angabe von SQL.
[Python] Lesen von Daten aus CIFAR-10 und CIFAR-100
Über den Unterschied zwischen "==" und "is" in Python
[Einführung in Python] Umgang mit Daten im JSON-Format
So drucken Sie Debug-Meldungen auf der Django-Konsole
Macht süchtig, wenn Kintone ein Datenspeicher ist
So erstellen Sie Daten für CNN (Chainer)
So erhalten Sie die Dateien im Ordner [Python]
Beispiel-API-Server, der JSON in Golang empfängt
Lesen von Zeitreihendaten in PyTorch
POST JSON mit Python und empfange mit PHP
So erstellen Sie eine Rest-API in Django
Datenbereinigung Umgang mit fehlenden und Ausreißern
Loggen Sie sich mit json mit pygogo ein.
Wie man Autokorrelation und partielle Autokorrelation mit Python zeichnet
Aufteilen von Trainingsdaten für maschinelles Lernen in objektive Variablen und andere in Pandas
Verwendung von Fixture in Django zur Eingabe von Beispieldaten für das Benutzermodell
Ich wollte nur die Daten des gewünschten Datums und der gewünschten Uhrzeit mit Django extrahieren