Python valueError:无法';t解析日期时间字符串:在sql中使用单引号
我正在将数据从一个txt文件导入到一个表中,该文件如下所示:Python valueError:无法';t解析日期时间字符串:在sql中使用单引号,python,sql,Python,Sql,我正在将数据从一个txt文件导入到一个表中,该文件如下所示: 1,2019-8-24,Broccoli Chinese,17,1.57 2,2019-8-24,chia seeds,11,0.20 3,2019-8-24,flax seeds,25,0.20 4,2019-8-24,sunflower seeds,26,0.30 在python shell中打印表时,我得到: (1, '2019-8-24', 'Broccoli Chinese', 17, 1.57) (2, '20
1,2019-8-24,Broccoli Chinese,17,1.57
2,2019-8-24,chia seeds,11,0.20
3,2019-8-24,flax seeds,25,0.20
4,2019-8-24,sunflower seeds,26,0.30
在python shell中打印表时,我得到:
(1, '2019-8-24', 'Broccoli Chinese', 17, 1.57)
(2, '2019-8-24', 'chia seeds', 11, 0.2)
(3, '2019-8-24', 'flax seeds', 25, 0.2)
(4, '2019-8-24', 'sunflower seeds', 26, 0.3)
后来在使用表时,我会遇到如下错误
valueError: Couldn't parse datetime string: '2019-8-24'
这些单引号“”是否实际在表条目中?就像在实际表格中一样,它是“2019-8-24”还是仅仅是2019-8-24,当我打印出该行时,它添加了“”
我只是在整理valueError时遇到了问题,并且想知道是否在导入期间在表中的日期前后输入了单引号“”,可能需要删除
编辑
这是由于错误而无法运行的实际代码
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()
我猜您的SQL版本不喜欢月份是个位数。您可以尝试自己使用Python清理这些数据,例如
def repl(m):
year = m.group(1)
month = m.group(2).zfill(2)
day = m.group(3).zfill(2)
return year + '-' + month + '-' + day
date = '2019-8-24'
date_new = re.sub('(\d+)-(\d+)-(\d+)', repl, date)
print(date)
print(date_new)
这张照片是:
2019-8-24
2019-08-24
我在这里所做的就是用左边的零将月和日的分量填充到两位数。假设你不期望任何中世纪的数据,我就懒得去碰年份了。我先在2019-08-24上试过,但出现了这个错误,所以我在24-8-24上试过,所以我不认为这是问题所在。你的SQL版本是什么(例如MySQL、SQL Server、Oracle、Postgres等)?sqlite,这个问题与我在这里发布的问题有关,我刚刚尝试过,但仍然得到错误值error:无法解析日期时间字符串:“2019-08-24”此时,我认为应该包含导致此错误的实际SQLite代码。