【发布时间】:2020-12-24 06:31:24
【问题描述】:
我在 DB 的一列 CHAR/STRING 中有这个列表:
['2020-09-05 10:15:00', '2020-09-05 10:30:00', '2020-09-05 10:45:00', '2020-09-05 11:00:00', '2020-09-05 11:15:00']
我把它们带到 python3:
employee_id = request.args.get('id')
employee = Employee.query.filter_by(id = employee_id).first()
list_time_em = employee.free_time
print(list_time_em)
for x in list_time_em:
print(x). #try to print time in list from DB
结果
['2020-09-05 10:15:00', '2020-09-05 10:30:00', '2020-09-05 10:45:00', '2020-09-05 11:00:00', '2020-09-05 11:15:00']
['2020-09-0510#...etc
[
'
2
0
2
0
-
0
9
-
0
5
1
0
:
1
5
我尝试了很多方法来获取 LIST 中的元素,如下所示:
2020-09-05 10:15:00
2020-09-05 10:30:00
...等 但我不能 请任何人帮助我! - - - - 解决方案 - - - - 感谢@Eddy
if request.args.get('do')=='add_job':
employee_id = request.args.get('id')
employee = Employee.query.filter_by(id = employee_id).first()
list_time_em = employee.free_time
datesStr = list_time_em
def getDates(datesStr):
dates = json.loads(datesStr.replace('\'', '"')) # make sure we dont break when parsing
return dates
dates = getDates(datesStr)
return render_template('add_job.html',list_time_em=dates)
我找到了另一种方式:
if request.args.get('do')=='add_job':
employee_id = request.args.get('id')
employee = Employee.query.filter_by(id = employee_id).first()
list_time_em = employee.free_time
x = list_time_em
ls = x.strip('[]').replace('"','').split(',')
print(ls)
return render_template('add_job.html',list_time_em=ls)
【问题讨论】:
-
错误在哪里,你只是一个一个地打印每个字符。
-
我想获取时间戳:'2020-09-05 10:15:00' ...等,
-
看起来您已经存储了 Python 列表的字符串表示形式。您应该修复数据源以使用更合适(和稳定)的表示,例如 JSON,甚至更好:更改架构以将员工的空闲时间存储在自己的表中,每行一行入口。在修复数据时,您可以使用
ast.literal_eval()将 Python 列表的字符串表示形式转换为正确的列表(而不是使用str.replace()和 JSON 进行破解)。
标签: sql python-3.x list flask sqlalchemy