从excel读取数据并插入到sqlite数据库中。
excel有两列:"年"和"月"。插入数据库时,我想连接如下:" 2013-12-31",默认日期始终为31。
以下是代码段并报告错误"全球名称' Concat'未定义":
views.py
curs = connection.cursor()
query = """Insert into xxxx(year, month, date,...) values (%s,%s,,,,)"""
for row in range(0,sheet.nrows):
values=[]
global year_var
global month_var
for col in range(0, sheet.ncols):
if col==0:
year_var = sheet.cell(row, col).value
if col==1:
month_var = sheet.cell(row,col).value
date= Concat(year_var,'-',month_var,'-','01') <!--here is wrong-->
if col==3:
values.append(date)
var = sheet.cell(row, col).value
values.append(var)
curs.execute(query, values)
答案 0 :(得分:1)
您可以使用str.format
:
>>> year_var = 2015
>>> month_var = 12
>>> '{}-{}-{}'.format(year_var, month_var, '01')
'2015-12-01'
或%
-operator (printf-style formatting):
>>> '%s-%s-%s' % (year_var, month_var, '01')
'2015-12-01'
更新根据OP的评论
值可以作为浮点值传递:2015.0
,3.0
>>> year_var = 2015.0
>>> month_var = 3.0
>>> '{:04.0f}-{:02.0f}-{}'.format(year_var, month_var, '01')
'2015-03-01'
>>> '%.0f-%02.0f-%s' % (year_var, month_var, '01')
'2015-03-01'