如何在Python中从字符串提取不同字段的值
我刚开始学习Python,想从一个字符串中提取值:
字符串是这样的:str='x:10 y:12 time : 01/01/2010 11:55:55'
现在我想创建一个字典,把值存储成这样:
x=10
y=12
time=01/01/2010 11:55:55
请告诉我该怎么做?
1 个回答
1
你尝试过什么了吗?
如果还没有,这里有一些想法……
使用内置的字符串处理工具
对于 x
和 y
:
>>> s = 'x:10 y:12 time : 01/01/2010 11:55:55'
>>> [pair.split(':') for pair in s.split(' ',2)[0:2]]
[['x', '10'], ['y', '12']]
假设你把它赋值给一个变量:
>>> lol = [x.split(':') for x in s.split(' ',2)[0:2]]
>>> d = {}
>>> for i,j in lol:
... d[i] = int(j)
...
>>> d
{'y': 12, 'x': 10}
对于 time
,你可以这样开始:
>>> [term.strip() for term in s.split(' ',2)[-1].split(':',1)]
['time', '01/01/2010 11:55:55']
正则表达式
>>> import re
>>> re.findall('(\w+):(\d+)',s)[0:2]
[('x', '10'), ('y', '12')]
然后我可能会用 strptime()
来处理最后的日期时间部分:
>>> from datetime import datetime
>>> datetime.strptime([term.strip()
for term in
s.split(' ',2)[-1].split(':',1)][1], '%m/%d/%Y %H:%M:%S')
datetime.datetime(2010, 1, 1, 11, 55, 55)