Python将微秒追加到列表的日期元素
您好,我有一个如下生成的数据列表 l_ele=line.split() 如果列表的dateelement没有SSSS,我想将它追加到000000位。如何实现它 预期产出:Python将微秒追加到列表的日期元素,python,list,datetime,append,Python,List,Datetime,Append,您好,我有一个如下生成的数据列表 l_ele=line.split() 如果列表的dateelement没有SSSS,我想将它追加到000000位。如何实现它 预期产出: ['2014-02-10T15:57:00.400733+00:00', 'coccus1','info="processing"] ['2014-02-10T15:57:02.734042+00:00', 'coccus1' , info="processing"] ['2014-02-10T15:57:02.000000+
['2014-02-10T15:57:00.400733+00:00', 'coccus1','info="processing"]
['2014-02-10T15:57:02.734042+00:00', 'coccus1' , info="processing"]
['2014-02-10T15:57:02.000000+00:00','coccus1','info="processing"']
['2014-02-10T15:57:03.000000+00:00', 'coccus1','info="looking for match"']
['2014-02-10T15:57:04.000000+00:00', 'coccus1', info="sampling"
['2014-02-10T15:57:06.771501+00:00','coccus1','info="sampling"']
不清楚数据的格式,但假设有两个字符串:
s1 = "2014-02-10T15:57:02+00:00"
s2 = "2014-02-10T15:57:02.734042+00:00"
您可以通过执行以下操作来确保它们都匹配格式:
def process_string(s):
return s if len(s) == 32 else "".join((s[:-6], ".000000", s[-6:]))
或者,在Python 2.5之前版本中:
def process_string:
if len(s) == 32:
return s
return "".join((s[:-6], ".000000", s[-6:]))
示例:
>>> process_string(s1)
'2014-02-10T15:57:02.000000+00:00'
>>> process_string(s2)
'2014-02-10T15:57:02.734042+00:00'
通常,我建议使用datetime
来执行此操作,但您的时区偏移量不是strtime
支持的格式
要将其应用于每个列表中的第一项,只需通过索引访问它,例如:
>>> l = ['2014-02-10T15:57:02+00:00', 'coccus1','info="processing"']
>>> l[0] = process_string(l[0])
>>> l
['2014-02-10T15:57:02.000000+00:00', 'coccus1', 'info="processing"']
这些行中的每一行都是列表吗?@msvalkon每一行都是列表。hi jornshare时间戳采用ISOformat格式,每一行都被拆分为一个列表。我如何扩展它以处理列表元素?更新以涵盖更新列表。
strtime
中的时区格式指令'%z'
采用“UTC偏移量,格式为+HHMM
或-HHMM
”,无冒号;我不知道为什么。非常感谢我使用python 2.4.3,它给出了一个语法错误:(在代码中的at if返回s if len=32 else”“。join((s[:-6],“.000000”,s[-6:]))
>>> l = ['2014-02-10T15:57:02+00:00', 'coccus1','info="processing"']
>>> l[0] = process_string(l[0])
>>> l
['2014-02-10T15:57:02.000000+00:00', 'coccus1', 'info="processing"']