Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用python,如何将csv文件中存储为m(m)/dd/yyyy的日期转换为yyyy-mm-dd以便在sqlite中使用?_Python_Date_Csv_Sqlite - Fatal编程技术网

使用python,如何将csv文件中存储为m(m)/dd/yyyy的日期转换为yyyy-mm-dd以便在sqlite中使用?

使用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

我正在使用一个包含日期字段的csv文件,但当我需要将日期以1986-8-1或1986-08-01格式读入sqlite3数据库时,日期的格式类似于1/8/1986。我看到很多人在谈论这个问题,但我还没有真正理解给出的答案。我认为它是这样工作的:对于一个特定的字段,csv读取器输出到一个转换器方法,该方法以sqlite可以使用的格式重新解析日期。我不认为sqlite本身可以用来生成转换代码,否则我可能会使用它。我不确定这个转换器方法如何与loadcsv方法一起工作。

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