python sqlite ValueError: Не удалось разобрать строку даты и времени - PullRequest
0 голосов
/ 15 октября 2019

У меня есть файл .txt, который я использую для заполнения таблицы sqlite FoodConsumed_tb

class FoodConsumed_Tb(db.Model):
    __tablename__ = 'foodconsumed_tb'
    id = db.Column(db.Integer, primary_key=True)
    date_created = db.Column(db.DateTime)
    item = db.Column(db.String(200), nullable=False)
    nutritionalvalue_id = db.Column(db.Integer, ForeignKey('nutritionalvalues.id'))
    amount = db.Column(db.Float, nullable=False)

by

p.communicate(b"""
INSERT INTO foodconsumed_tb
         (date_created,
          item,
          amount,
         );
.separator ","
.import ate_records.txt foodconsumed_tb
""")

ate_records.txt выглядит как

  1,2019-08-24,Broccoli Chinese,17,1.57 
  2,2019-08-24,chia seeds,11,0.20
  3,2019-08-24,flax seeds,25,0.20
  4,2019-08-24,sunflower seeds,26,0.30
  ....

Это работает, и таблица заполнена всеми записями. Но когда я прихожу и пытаюсь использовать эту таблицу, используя

consumedfoods = FoodConsumed_Tb.query.order_by(FoodConsumed_Tb.date_created).all()

, я получаю ошибку

ValueError: Couldn't parse datetime string: '2019-08-24'

Для дат, которые вводятся в таблицу через форму (я делаюприложение фляги) Я использую

date_created=datetime.strptime(date, "%Y-%m-%d").date()

, где «date» происходит из form.request ['date'], работает нормально, когда я форматирую дату.

Но когда я просто импортируювсе записи в таблицу из файла .txt, я не знаю, как отформатировать дату?

Я пытался это

from flask import Flask, render_template, url_for, request, redirect
from flask_sqlalchemy import SQLAlchemy
from datetime import datetime

app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///test.db'
app.config['SECRET_KEY'] = 'secret' 
db = SQLAlchemy(app)

from app import FoodConsumed_Tb

rows = FoodConsumed_Tb.query.all()

for row in rows:
    consumed_food_entry_to_update = FoodConsumed_Tb.query.get_or_404(row.id)
    consumed_food_entry_to_update.date_created = datetime.strptime(consumed_food_entry_to_update.date_created, "%Y-%m-%d").date()

db.session.commit()

, но он говорит

ValueError: Couldn't parse datetime string: '2019-08-24'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...