2016-07-24 94 views
-1

我將字符串JSON格式如下字符串轉換爲JSON數據

data = """ 

S3F4 
accept reply: true 

""" 

和JSON數據爲[{"header":{"stream":3,"function":4,"reply":True}}]

我可以使用正則表達式和搜索模式S3F4並添加到字典。

但是有沒有更好的方法或在我可以用於更通用的解決方案的構建函數?

+0

問題是什麼?是否有更好的方法(比_what_更好)來「解析」一個像「'SNFN accepted reply:true/false」這樣的字符串? –

+0

是否有任何常規方式或使用像'json.loads'這樣的庫或這是唯一的方法 – user2661518

+0

如何有現成的庫來解析您的自定義數據格式? (如果這不是您的自定義格式,而是一些標準,請將其格式命名。) –

回答

1

不能確定輸入字符串的所有變化,什麼是字符streamfunctionreply可以的範圍,但這裏是你可以開始:

S(?P<stream>\d)F(?P<function>\d)\naccept reply: (?P<reply>\w+) 

其中(?P<...>...)named capturing groups\d將匹配一個數字,\w+將匹配一個或多個連續的字母數字(和下劃線)字符。

演示:

>>> import re 
>>> 
>>> data = """ 
... S3F4 
... accept reply: true 
... """ 
>>> 
>>> match = re.search(r"S(?P<stream>\d)F(?P<function>\d)\naccept reply: (?P<reply>\w+)", data) 
>>> print(match.groupdict()) 
{'function': '4', 'reply': 'true', 'stream': '3'}