Python将微秒附加到lis的date元素

2024-03-29 11:47:26 发布

您现在位置:Python中文网/ 问答频道 /正文

你好,我有一个数据生成如下列表

标高=行。拆分()

['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+00:00','coccus1','info="processing"']
['2014-02-10T15:57:03+00:00', 'coccus1','info="looking for match"']
['2014-02-10T15:57:04+00:00', 'coccus1', info="sampling"
['2014-02-10T15:57:06.771501+00:00','coccus1','info="sampling"']

我想附加ssss到000000位到列表的dateelement,如果它没有是的。怎么了为了实现它?你知道吗

预期产量:

['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"']

Tags: 数据info列表formatch产量samplingprocessing
1条回答
网友
1楼 · 发布于 2024-03-29 11:47:26

不清楚数据的格式,但假设有两个字符串:

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 pre-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来实现这一点,但是您的时区偏移量不是strptime支持的格式。你知道吗


要将此应用于每个列表中的第一项,只需按索引访问它,例如:

>>> 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"']

相关问题 更多 >