त्रुटि: TypeError: प्रकार की वस्तु ColumnClause, JSON serializable Python3 नहीं है

Oct 27 2020

हाय मुझे यह त्रुटि हो रही है। TypeError: Type of ColumnClause, JSON अनुक्रमिक नहीं है।

पूरी बात:

    [2020-10-26 22:17:58,448] ERROR in app: Exception on /all-user [GET]
Traceback (most recent call last):
  File "c:\users\ryand\.virtualenvs\main-api-ucgvpon1\lib\site-packages\flask\app.py", line 2447, in wsgi_app
    response = self.full_dispatch_request()
  File "c:\users\ryand\.virtualenvs\main-api-ucgvpon1\lib\site-packages\flask\app.py", line 1952, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "c:\users\ryand\.virtualenvs\main-api-ucgvpon1\lib\site-packages\flask\app.py", line 1821, in handle_user_exception
    reraise(exc_type, exc_value, tb)
  File "c:\users\ryand\.virtualenvs\main-api-ucgvpon1\lib\site-packages\flask\_compat.py", line 39, in reraise
    raise value
  File "c:\users\ryand\.virtualenvs\main-api-ucgvpon1\lib\site-packages\flask\app.py", line 1950, in full_dispatch_request
    rv = self.dispatch_request()
  File "c:\users\ryand\.virtualenvs\main-api-ucgvpon1\lib\site-packages\flask\app.py", line 1936, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "C:\Users\ryand\Desktop\mealplansfree\main-api\api.py", line 36, in decorated
    return f(*args, **kwargs)
  File "C:\Users\ryand\Desktop\mealplansfree\main-api\api.py", line 59, in get_all_users
    return jsonify({'users' : output})
  File "c:\users\ryand\.virtualenvs\main-api-ucgvpon1\lib\site-packages\flask\json\__init__.py", line 370, in jsonify
    dumps(data, indent=indent, separators=separators) + "\n",
  File "c:\users\ryand\.virtualenvs\main-api-ucgvpon1\lib\site-packages\flask\json\__init__.py", line 211, in dumps
    rv = _json.dumps(obj, **kwargs)
  File "c:\users\ryand\appdata\local\programs\python\python38-32\lib\json\__init__.py", line 234, in dumps
    return cls(
  File "c:\users\ryand\appdata\local\programs\python\python38-32\lib\json\encoder.py", line 199, in encode
    chunks = self.iterencode(o, _one_shot=True)
  File "c:\users\ryand\appdata\local\programs\python\python38-32\lib\json\encoder.py", line 257, in iterencode
    return _iterencode(o, 0)
  File "c:\users\ryand\.virtualenvs\main-api-ucgvpon1\lib\site-packages\flask\json\__init__.py", line 100, in default
    return _json.JSONEncoder.default(self, o)
  File "c:\users\ryand\appdata\local\programs\python\python38-32\lib\json\encoder.py", line 179, in default
    raise TypeError(f'Object of type {o.__class__.__name__} '
TypeError: Object of type ColumnClause is not JSON serializable

यहाँ ऊपर के लिए कोड है।

  @app.route('/all-user', methods=['GET'])
@application_required
def get_all_users():

    users = User.query.all()

    output = []

    for user in users:
        user_data = {}
        user_data['user_id'] = user.user_id
        user_data['full_name'] = user.full_name
        user_data['username'] = user.username
        user_data['password'] = user.password
        user_data['admin'] = user.admin
        output.append(user_data)

    return jsonify({'users' : output})

यहाँ गुप्त कुंजी जाँच है

def application_required(f):
    @wraps(f)
    def decorated(*args, **kwargs):
        token = None

        if 'x-access-key' in request.headers:
            token = request.headers['x-access-key']

        if not token:
            return jsonify({'message' : 'ERROR x-access-key missing or incorrect.'}), 401

        if token == app.config['SECRET_KEY']:
            return f(*args, **kwargs)
        else:
            return jsonify({'message' : 'ERROR x-access-key missing or incorrect.'}), 401

    return decorated

अगर किसी को पता है कि क्या चल रहा है या क्या हो रहा है और ये कैसे डिबग कर सकता है, तो यह बहुत अच्छा होगा!

जवाब

2 RyanTheRyan Oct 28 2020 at 07:48

मुझे यहाँ उत्तर मिला: SQLAlchemy चेतावनी: स्तंभ घोषणात्मक मैपिंग का हिस्सा नहीं होगा

मैं अपने उपयोगकर्ता मॉडल में उपयोगकर्ता नाम से चूक गया था यह एक लोअरकेस सी था और ऊपरी मामला नहीं था। यह त्रुटि तय की और अब काम कर रहा है। धन्यवाद!

RanjeetSingh Oct 27 2020 at 11:30

इसका कारण डेटा प्रकार हो सकता है। आप बहुत प्रकार के डेटा का उपयोग कर रहे हैं। डेटा प्रकार परिवर्तनों को कम करने का प्रयास करें।