2016-07-24 118 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'}