2013-03-16 38 views
0

字符串看起来是这样的:将FIX消息解包到Python字典中的最佳方式是什么?

input = 'key1=val1\001key2=val2\001key3=val3\001key4=val4' 

其中\ 001是分离

message = {} 

呃...现在该怎么办?我知道我可以做这样的事情

my_list = imput.split('\001') 
my_dict = {} 

for pair in my_list: 
    tup = pair.split('=') 
    my_dict[tup[0]] = tup[1] 

这工作,但它似乎真的丑。一定会有更好的办法。

回答

2

你喜欢这样的:

>>> dict(p.split('=') for p in input.split('\001')) 
{'key3': 'val3', 'key2': 'val2', 'key1': 'val1', 'key4': 'val4'} 
+0

我做的。非常感谢。 – shaz 2013-03-16 22:53:22

+0

不客气。 – piokuc 2013-03-16 22:54:00

0

或者是这样的:

import re 
fixMsg = 'key1=val1\001key2=val2\001key3=val3\001key4=val4' 
d = dict(re.findall("(.*?)=(.*?)\001", fixMsg+'\001')) 
相关问题