Maison  >  Questions et réponses  >  le corps du texte

Je pense qu'il s'agit d'un bug Python MySQL mais je ne comprends pas la situation. Erreur interne : résultats non lus trouvés

Voici mon code API Flask

from flask import request
from flask_restful import Resource
from mysql.connector import Error
from flask_jwt_extended import jwt_required, get_jwt_identity

from mysql_connection import get_connection

class OrderListResource(Resource):

    # 내 주문내역 조회 API
    @jwt_required()
    def get(self):

        userId = get_jwt_identity()
        offset = request.args.get('offset')
        limit = request.args.get('limit')

         # 기본값
        if not offset:
            offset = 0
        if not limit:
            limit = 20

        try:
            connection = get_connection()
            # 주문한 시간이 늦은 순으로 정렬
            query = '''
                    select *
                    from orders
                    where userId = %s
                    order by createdAt desc;
                    limit '''+offset+''', '''+limit+''';
                    '''
            record = (userId, )
            cursor = connection.cursor(dictionary=True, buffered=True)
            cursor.execute(query, record)
            result_list = cursor.fetchall()

            for row in result_list:
                row['reservTime'] = row['reservTime'].isoformat()
                row['createdAt'] = row['createdAt'].isoformat()
            
            cursor.close()
            connection.close()
        
        except Error as e:
            print(e)
            cursor.close()
            connection.close()
            return {'error' : str(e)}, 500

        return {'result' : 'success',
                'items' : result_list,
                'count' : len(result_list)}, 200

Je l'ai déployé à l'aide d'AWS lambda et je l'ai testé à l'aide de Postman. Fonctionne bien dans l'état local, mais le serveur obtient une "Erreur interne du serveur". Locale AWS lambda

J'ai donc regardé les journaux CloudWatch et j'ai reçu le message d'erreur suivant :

[ERROR] InternalError: Unread result found

Ce qui est bizarre, c'est que parmi toutes les API que j'ai déployées, seule celle-ci m'a donné l'erreur. D'autres API fonctionnent correctement en local et sur le serveur. Donc je ne sais pas où est le problème.

J'ai mis bufferd=True dans curseur() qui est la solution lors de la recherche de l'erreur "résultats non lus trouvés", mais cela n'a aucun effet.

P粉193307465P粉193307465405 Il y a quelques jours367

répondre à tous(1)je répondrai

  • P粉982054449

    P粉9820544492023-09-11 13:33:08

    J'ai résolu ce problème ! La raison est : est utilisé deux fois dans la requête. Il s'agit d'un problème simple mais qui fonctionne bien localement, je ne parviens donc pas à en trouver la cause. Désolé.

    répondre
    0
  • Annulerrépondre