我如何解决TypeError:使用flask和Sqlite3时'NoneType'对象无法下标?

时间:2020-10-21 20:16:02

标签: python-3.x sqlite flask

我正在尝试格式化来自sqlite3数据库引擎的日期。我正在使用Flask框架托管应用程序,并且收到以下错误消息:'None Type object is subcriptable',这可能与从数据库中提取日期时格式化日期的方式有关。不确定在这里做什么?

     @app.route('/view/<date>', methods=['GET','POST'])#date to be 20200520 format
     def view(date):
          db = get_db()
          cur = db.execute('select entry_date from log_date where entry_date = ?', [date])
          result = cur.fetchone()
          d = datetime.strptime(str(result['entry_date']), '%Y%m%d')
          pretty_date = datetime.strftime(d, '%B %d, %Y')

         return render_template('day.html', date=pretty_date)

我遇到的错误是:

TypeError

TypeError:“ NoneType”对象不可下标 追溯(最近一次通话结束)

File "/usr/lib/python3.6/site-packages/flask/app.py", line 2464, in __call__

return self.wsgi_app(environ, start_response)

File "/usr/lib/python3.6/site-packages/flask/app.py", line 2450, in wsgi_app

response = self.handle_exception(e)

File "/usr/lib/python3.6/site-packages/flask/app.py", line 1867, in handle_exception

reraise(exc_type, exc_value, tb)

File "/usr/lib/python3.6/site-packages/flask/_compat.py", line 39, in reraise

raise value

File "/usr/lib/python3.6/site-packages/flask/app.py", line 2447, in wsgi_app

response = self.full_dispatch_request()

File "/usr/lib/python3.6/site-packages/flask/app.py", line 1952, in full_dispatch_request

rv = self.handle_user_exception(e)

File "/usr/lib/python3.6/site-packages/flask/app.py", line 1821, in handle_user_exception

reraise(exc_type, exc_value, tb)

File "/usr/lib/python3.6/site-packages/flask/_compat.py", line 39, in reraise

raise value

File "/usr/lib/python3.6/site-packages/flask/app.py", line 1950, in full_dispatch_request

rv = self.dispatch_request()

File "/usr/lib/python3.6/site-packages/flask/app.py", line 1936, in dispatch_request

return self.view_functions[rule.endpoint](**req.view_args)

File "/root/python_flask_projects/food_tracker_flask_app/app.py", line 59, in view

@app.route('/view/<date>', methods=['GET','POST'])#date to be 20200520 format

def view(date):

        db = get_db()

        cur = db.execute('select entry_date from log_date where entry_date = ?', [date])

        result = cur.fetchone()

        datestring = str(result['entry_date'])

        #d = datetime.strptime(str(result['entry_date']), '%Y%m%d')

        d = datetime.strptime(datestring, '%Y%m%d')

        pretty_date = datetime.strftime(d, '%B %d, %Y')

 

        return render_template('day.html', date=pretty_date)

TypeError: 'NoneType' object is not subscriptable

感谢您可以提供的任何帮助。

1 个答案:

答案 0 :(得分:1)

如果没有与查询匹配的行,

.fetchone()将返回None。