使用python,如何将csv文件中存储为m(m)/dd/yyyy的日期转换为yyyy-mm-dd以便在sqlite中使用?
我正在使用一个包含日期字段的csv文件,但当我需要将日期以1986-8-1或1986-08-01格式读入sqlite3数据库时,日期的格式类似于1/8/1986。我看到很多人在谈论这个问题,但我还没有真正理解给出的答案。我认为它是这样工作的:对于一个特定的字段,csv读取器输出到一个转换器方法,该方法以sqlite可以使用的格式重新解析日期。我不认为sqlite本身可以用来生成转换代码,否则我可能会使用它。我不确定这个转换器方法如何与loadcsv方法一起工作。使用python,如何将csv文件中存储为m(m)/dd/yyyy的日期转换为yyyy-mm-dd以便在sqlite中使用?,python,date,csv,sqlite,Python,Date,Csv,Sqlite,我正在使用一个包含日期字段的csv文件,但当我需要将日期以1986-8-1或1986-08-01格式读入sqlite3数据库时,日期的格式类似于1/8/1986。我看到很多人在谈论这个问题,但我还没有真正理解给出的答案。我认为它是这样工作的:对于一个特定的字段,csv读取器输出到一个转换器方法,该方法以sqlite可以使用的格式重新解析日期。我不认为sqlite本身可以用来生成转换代码,否则我可能会使用它。我不确定这个转换器方法如何与loadcsv方法一起工作。pip安装python-dateu
pip安装python-dateutil
然后
或者就这么做。。。对你来说可能更容易
import re
with open("fixed_csv.csv","wb") as f:
f.write(re.sub("(\d\d?)/(\d\d)/(\d{4})","\\3-\\2-\\1",open("my.csv").read())
然后使用“fixed_csv.csv”作为输入…如果不想安装其他软件包,可以执行以下操作:
>>> from datetime import date
>>> d = '1/8/1986'
>>> date(*reversed([int(x) for x in d.split('/')])).strftime('%Y-%m-%d')
'1986-08-01'
这非常简单,没有导入:
olddate="1/21/2010"
m,d,y=map(str,olddate.split('/'))
newdate=y+'-'+m+'-'+d
与从csv文件中读取的代码相关联的内容会在哪里?与从csv文件中读取的代码相关联的内容会在哪里?@cluemein:一旦从csv文件中读取了一行,您需要在写入DB之前转换包含日期的每一列。如果没有看到你的任何代码,我真的无法给出更详细的答案。我真的找到了答案。这与从csv文件读取的代码有关吗?我很抱歉,但你可能会有点不知所措。。。如果这是一个课堂作业,你可能应该向你的老师寻求帮助。。。再做一些教程。。。你可以在任何你想“确定日期”的地方这样做,我的意思是。这不是学校的项目,只是我在家里做的事情。只是以前从未以这种方式使用过python。
olddate="1/21/2010"
m,d,y=map(str,olddate.split('/'))
newdate=y+'-'+m+'-'+d